utilizo como mi Bash shell de entrada, pero las secuencias de comandos que elegiría el shell Bourne cualquier día de la semana y dos veces el domingo. Bash tiene mejores características, mejor facilidad de uso y mejores errores.
En realidad, las mismas cosas que me obligan a elegir Bash cuando estoy iniciando sesión, me hacen evitarlo al crear scripts. Bash intenta que todo sea agradable y acogedor para el usuario, pero a expensas de un ejecutable de 776 kB (en mi máquina), en comparación con 140 kB para Bourne shell. ¿Por qué mi script se preocupa por la facilidad de uso? Cualquier ganancia que logre mediante el uso de alguna función inteligente de Bash queda efectivamente anulada por la huella del casco, que es más de cinco veces más grande.
Tengo computadoras que ejecutan Linux, FreeBSD y OS X. Aunque rara vez muevo algo entre las computadoras, es bueno tener la posibilidad. En un script de shell Bourne, simplemente escriba
#!/bin/sh
y simplemente funciona. Siempre. Bash podría ser común en Linux, pero no está tan estandarizado como el shell Bourne. En FreeBSD, Bash no está instalado por defecto. Se puede instalar desde puertos si el administrador del sistema piensa que es una buena idea pero, incluso así, termina en /usr/local/bin/bash (no en /bin/bash). Por lo tanto, si aún decide usar Bash, debe escribir
#!/usr/bin/env bash
para hacer que la secuencia de comandos sea portátil. env
encontrará la carcasa para usted, independientemente de su sabor de Unix (siempre que esté instalado).
Al final del día, es su elección. Solo asegúrese de que sus scripts sean realmente compatibles con en el shell que elija, y no confíe en que "sh" esté enlazado a "bash" o algo similar.
siempre y cuando no sea csh –
[Programación Csh considerada nociva] (http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/) –
¡Código de programadores REAL en Korn! :-P Siempre prefiero sh en comparación con bash, porque la mayoría de las funciones sintácticas serán las mismas o al menos compatibles con el comportamiento sh en la mayoría de las distros; mientras que bash simplemente no está disponible en algunos casos si trabajas con AIX, etc. Pero si trabajas con scripts solo para Linux, bash es preferible. Hace mucho más fácil la programación de imho. –