Eu queria saber se os scripts escritos para dash, ash e sh são 100% compatíveis?
Existem recursos adicionais para traço ou cinzas ou alteração de sintaxe?
Pelo que ouvi, ash é um descendente direto de sh.
shell
shell-script
compatibility
dash
ash
user1115057
fonte
fonte
man ash
checkbashisms
para testar se seu script é compatível com POSIX.Respostas:
A resposta curta é não, eles não são 100% compatíveis.
Mas a maioria das conchas é bem próxima do básico, então você raramente esbarra em inconsistências. De fato, a maioria dos shells diferem pouco devido à sintaxe adicionada, mas por alguns recursos extras, como conclusão de tabulação e similares.
Além disso,
dash
é uma espécie de descendente deash
- ou porta do BSD para o Linux, para ser mais preciso. E todos eles devem ser descendentes ou diferentes implementações desh
. Na verdade,sh
é na maioria dos sistemas apenas um link simbólico parabash
,dash
ou qualquer outra coisa. O que importa é a conformidade com o POSIX - e quando você escreve scripts de acordo com os padrões, não terá problemas.A diferença entre essas conchas está em otimizações e desempenho. Eles são menos ricos em recursos
bash
, mas são conchas totalmente legítimas. O Bash é rico em recursos para trabalho interativo, mas usa mais memória, por exemplo.fonte
Deve-se mencionar que em alguns sistemas, principalmente o Debian, / bin / ash não está disponível:
fonte