Tengo el siguiente script simple:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Salida en caso de que corra con sh file.sh:
Bash version ...
{1..99..2}
Salida en caso de que corra con bash file.sh:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
Tengo dos consultas:
Si he escrito una línea shabang que especifica shell, ¿no debería ejecutarse con bash si uso
sh file.shobash file.sh?Entiendo que
$BASH_VERSIONsh no lo reconoce, pero ¿cuál es el problema con for loop? ¿Por qué no se imprimen los números?
fuente

dash, que como usted diceshen Ubuntu, no está presente principalmente "para ser un aviso de emergencia para las circunstancias de DIRE", sino para que el sistema pueda ejecutarse y comenzar rápidamente . De esta manera,dashes muy adecuado para su uso en un sistema operativo moderno, pero lo que está bien adaptado para es como un bajo perfil, cáscara rápido para scripting - en particular, la ejecución de scripts del sistema al iniciar un grande, complejo, sistema operativo moderno, con un mínimo Rendimiento sobrecarga.shbastante constantemente, y particularmente intensivamente como arranca Ubuntu. Es principalmente importante para sus usos automáticos de secuencias de comandos, y ese es un caso de uso muy importante en Ubuntu. (Si tuviera que eliminar el/bin/shenlace simbólico, de modo que, en efecto, no hubiera "SH", las cosas saldrían terriblemente mal: Ubuntu no podría arrancar en un estado utilizable).