Os scripts dash, ash e sh são 100% compatíveis?

15

Eu queria saber se os scripts escritos para traço, ash e sh são 100% compatíveis?

Há algum recurso adicional para traçar ou reduzir ou alterar a sintaxe?

Pelo que ouvi, a cinza é descendente direta de sh.

    
por user1115057 07.08.2012 / 07:40

2 respostas

18

A resposta curta é não, eles não são 100% compatíveis.

Mas a maioria dos shells é bem próxima do básico, então você raramente iria se deparar com inconsistências. Na verdade, a maioria das shells não diferem muito pela sintaxe adicionada, mas por alguns recursos extras, como conclusão de tabulação e similares.

Além disso, dash é uma espécie de descendente de ash - ou porta do BSD para o Linux, para ser preciso. E todos eles devem ser descendentes ou implementações diferentes de sh . De fato, sh está na maioria dos sistemas apenas um symlink para bash , dash ou outra coisa. O que importa é a conformidade POSIX - e quando você escreve scripts de acordo com os padrões, você não terá problemas.

A diferença entre essas camadas está nas otimizações e no desempenho. Eles são menos ricos em recursos que bash , mas são totalmente legítimos. O Bash é rico em recursos para trabalhos interativos, mas usa mais memória, por exemplo.

    
por 07.08.2012 / 08:35
1

Deve-se mencionar que em alguns sistemas, notavelmente o Debian, / bin / ash não é disponível:

$ type ash dash
bash: type: ash: not found
dash is /bin/dash
    
por 25.12.2015 / 04:17