Cuando está creando un nuevo script de shell, quiere asegurarse de que esté lo más libre de problemas posible, pero a veces puede ser un poco confuso saber qué shebang es el mejor para usar. En esa nota, la publicación de preguntas y respuestas de SuperUser de hoy tiene la respuesta a la pregunta de un lector confuso.
La sesión de preguntas y respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad.
El lector de superusuario Hendre quiere saber cuándo es mejor usar #! / Bin / bash en lugar de #! / Bin / sh en scripts de shell:
¿Cuándo es más apropiado usar #! / Bin / bash en lugar de #! / Bin / sh en un script de shell?
¿Cuándo es mejor usar #! / Bin / bash en lugar de #! / Bin / sh en un script de shell?
Grawity, colaborador de superusuario, tiene la respuesta para nosotros:
En breve:
- Hay varios shells que implementan un superconjunto de la especificación sh de POSIX . En diferentes sistemas, / bin / sh puede ser un enlace a ash, bash, dash, ksh, zsh, etc. Sin embargo, siempre será compatible con sh, nunca csh o fish.
- Siempre que se ciña solo a las funciones sh, puede (y probablemente debería) usar #! / Bin / sh y el script debería funcionar bien, sin importar qué shell sea.
- Si comienza a usar funciones específicas de bash (es decir, matrices), debe solicitar específicamente bash porque, incluso si / bin / sh ya invoca bash en su sistema, es posible que no lo haga en el sistema de todos los demás y su script no se ejecutará allí. Lo mismo se aplica a zsh y ksh, por supuesto.
- Incluso si el script es solo para uso personal, es posible que observe que algunos sistemas operativos cambian / bin / sh durante las actualizaciones. Por ejemplo, en Debian solía ser bash, pero luego fue reemplazado por el guión mínimo. Los scripts que usaban bashismos pero tenían #! / Bin / sh de repente se rompieron.
Sin embargo:
- Incluso #! / Bin / bash no es tan correcto. En diferentes sistemas, bash puede vivir en / usr / bin , / usr / pkg / bin o / usr / local / bin .
- Una opción más confiable es #! / Usr / bin / env bash , que usa $ PATH . Aunque la herramienta env en sí tampoco está estrictamente garantizada, / usr / bin / env todavía funciona en más sistemas que / bin / bash .
¿Tiene algo que agregar a la explicación? Habla en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Consulte el hilo de discusión completo aquí .
Crédito de la imagen: Wikipedia
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…