Pergunta

Eu uso bash, e têm feito isso há mais de uma década - mas, ocasionalmente, gostaria de saber se tem havido quaisquer novos desenvolvimentos significativos no mundo das conchas Linux

.

Alguns anos atrás, a Microsoft lançou o PowerShell, que parecia muito interessante. Existe alguma inovação comparável acontecendo em conchas Linux?

Foi útil?

Solução

Você pode executar PowerShell no Linux via Pash . Ele usa Mono o caminho PowerShell usa .NET.

Outras dicas

Você percebe bash 4 tem muito recentemente foi lançado com uma carga de novas funcionalidades e adições de linguagem?

  • Shell opções globstar (**/foo) faz uma pesquisa recursiva, dirspell correções de erros durante a expansão de nome.
  • As matrizes de associação, mapa cordas para cordas, em vez de números apenas para strings.
  • A opção shell autocd permite alterar diretórios apenas digitando o caminho do diretório em vez de ter de colocar cd na frente.
  • Coprocesses
  • &>> e redirecionamento |& operadores que redirecionam tanto stdout e stderr
  • Cargas de adições ao builtins existentes para melhorar a conveniência de script.

Confira:

eu dar uma olhada em zsh ou fishshell.

Uma das características menos apregoados de Bash (e vários outros shells) é a capacidade de escrever seus próprios loadables, e têm a casca executá-los como builtins.

Vamos dizer que você escreve o carregável 'on' .. e você quer que ele funcione como esta:

on node 123 run some command
on class nodes run some command
on all nodes run some command

... etc ..

Você pode seguir simples exemplos de como escrever uma carregável, em seguida, ative-o como uma festança construído em via permitir -f / path / to / carregável loadable_name

Assim, no nosso caso, permitir -f / opt / bash / loadables / ON

... no seu bashrc, e você tem isso.

Então, se você quer ter o bash interpretar seu novo idioma spiffy nativamente, você iria escrever um carregável chamado 'uso' ou 'switch_to', em seguida, modificar o analisador para carregar um diferente gramática / runtime se uma determinada variável de ambiente foi definido .

ou seja:.

#/bin/bash

switch_to my-way-cool-language

funkyfunc Zippy(int p) [[
   jive.wassup(p) ]]

A maioria das pessoas são não vai querer cortar sua concha, no entanto. Eu queria salientar que existem meios para levar Bash e torná-lo do jeito que você quiser, sem ter que mexer muito com código do núcleo.

See / path-to-bash-source / exemplos / loadables, você pode ser capaz de conseguir que a voar onde você trabalha, desde que você ainda está usando Bash.

Eu acho que o "shell melhorada original" é ksh93 . festa entrou em existência num momento em que o código-fonte ksh era proprietária; se ksh tinha sido open-source, então, ele pode não ter sido considerado necessário para ter um novo shell (embora com a FSF nunca se sabe). ksh vale a pena estudar, especialmente por sua capacidade de ser estendido através de módulos C, mas não é uma vitória clara sobre bash. autocompletar do bash é claramente superior, o que pode ser suficiente para fazer festa de uma vitória total. Em qualquer caso bash e ksh ter feito um esforço substancial para convergir, então as diferenças são menores.

O outro shell interessante é zsh , que tenta ser tudo o que ksh é ao mesmo tempo, incluindo csh. Desde que eu nunca vi qualquer ponto ou uso para csh, eu não sou a pessoa certa ao advogado para zsh. Vou apontar uma incompatibilidade incomum: por padrão, no zsh um $var variável sempre se expande para um único token, mesmo que contenha espaços. Este comportamento é incompatível com todos os outros shells derivadas de sh, e é ocasionalmente inconveniente, mas realmente não faz muito mais sentido do que o original, e ele salva um inferno de um lote de citar.

csh foi o primeiro shell de ter controle de trabalho, mas na minha mente (e seus sucessores) foi substituído pelo bash e ksh. Era diversão nunca mucn a scripts escrever.

Finalmente, há muitas conchas minúsculas projetados para disquetes de resgate (!) E outros ambientes espartanos, mas parece que você tem pouco interesse em pessoas.

(Em matéria de inovação, devo acrescentar que mais da metade dos scripts que eu usei para escrever como shell scripts estão agora Lua scripts. Outros poderiam dizer o mesmo para Python ou ruby, ou de volta ao dia, Perl ou Tcl. Então eu acho que a verdadeira inovação é a migração para longe do reservatório para a interação programável na linha de comando.)

IIRC, PowerShell é Object Oriented, enquanto a maioria das conchas e utilitários Unix operar em texto. No que diz respeito, Squirrel Shell interessantes. Eu nunca usei isso, porém.

Se você está disposto a compatibilidade sh perder, você pode olhar através de uma linguagem de script como Python ou Tcl como seu shell. rlwrap pode ser muito útil se o intérprete não fornece edição de linha, comando história, a conclusão, etc.

Uma filosofia sobre conchas é que eles devem primeiramente ser usado apenas para processos de conexão com arquivos ( aqui é uma página que defende que a abordagem ). Dito isto, as pessoas têm escrito algum software incrivelmente complexo usá-los.

Escudos não vêm muito mais inovador do que a Esquema Schell . Toda a potência do Esquema combinado com a capacidade de executar comandos Unix e um intérprete awk incorporado (escrito no Esquema, é claro). O único inconveniente é que ele precisa de um pouco de patching para construir 64 bit Linux.

Não é exatamente Bourne-shell, mas é diferente. Claro, você tem que aprender Scheme - bônus

!

Se você gosta de rubi, você pode usar rush (ruby-unix shell, não IRB)

veja a apresentação aqui

http: //www.slideshare. / adamwiggins líquida / apressar-the-ruby-shell-and-unix-integração-biblioteca

ou site oficial para ver mais exemplos

http://rush.heroku.com/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top