¿Quería saber si los scripts escritos para dash, ash y sh son 100% compatibles?
¿Hay alguna característica adicional para el guión o la ceniza, o el cambio de sintaxis?
Por lo que escuché, Ash es un descendiente directo de sh.
shell
shell-script
compatibility
dash
ash
usuario1115057
fuente
fuente
man ash
checkbashisms
para probar que su script es compatible con POSIX.Respuestas:
La respuesta corta es no, no son 100% compatibles.
Pero la mayoría de las conchas están bastante cerca de lo básico, por lo que rara vez se topan con inconsistencias. De hecho, la mayoría de los shells difieren no mucho por la sintaxis agregada, sino por algunas características adicionales como la finalización de pestañas y similares.
Además,
dash
es una especie de descendiente deash
- o puerto de BSD a Linux, para ser precisos. Y todos ellos deberían ser descendientes o diferentes implementaciones desh
. De hecho,sh
es en la mayoría de los sistemas sólo un enlace simbólico abash
,dash
o algo más. Lo que importa es el cumplimiento de POSIX, y cuando escribe scripts de acuerdo con los estándares, no tendrá problemas.La diferencia entre esos shells está en las optimizaciones y el rendimiento. Por lo tanto, son menos ricas en características
bash
, pero son shells totalmente legítimos. Bash es rico en funciones para el trabajo interactivo, pero usa más memoria, por ejemplo.fuente
Cabe mencionar que en algunos sistemas, en particular Debian, / bin / ceniza no está disponible:
fuente