Ho il seguente semplice script:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Uscita nel caso in cui corro con sh file.sh
:
Bash version ...
{1..99..2}
Uscita nel caso in cui corro con bash file.sh
:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
Ho due domande:
Se ho scritto una riga shabang specificando la shell, non dovrebbe funzionare con bash se uso
sh file.sh
obash file.sh
?Capisco che
$BASH_VERSION
non è riconosciuto da sh ma qual è il problema con for loop? Perché non stampare i numeri?
dash
, Che come dici tu forniscesh
in Ubuntu, non è presente principalmente "per essere un prompt di emergenza per circostanze DIRE" ma invece il sistema può funzionare e avviarsi velocemente . In questo modo,dash
è adatto ad un uso in un sistema operativo moderno, ma ciò che è adatto per è come un basso profilo, shell veloce per lo scripting - in particolare, l'esecuzione di script di sistema durante l'avvio di un grande, complesso, moderno sistema operativo, con il minimo sovraccarico di prestazioni.