J'ai le script simple suivant:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Sortie au cas où je courrais avec sh file.sh
:
Bash version ...
{1..99..2}
Sortie au cas où je courrais avec bash file.sh
:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
J'ai deux requêtes:
Si j'ai écrit une ligne de shabang spécifiant le shell, ne devrait-elle pas fonctionner avec bash, que j'utilise
sh file.sh
oubash file.sh
?Je comprends que ce
$BASH_VERSION
n'est pas reconnu par sh mais quel est le problème avec la boucle for? Pourquoi n'imprime-t-on pas les chiffres?
dash
, Qui , comme vous le ditessh
dans Ubuntu, n'est pas présent principalement «pour être une invite d'urgence pour les circonstances DIRE», mais plutôt pour que le système puisse fonctionner et démarrer rapidement . De cette façon, ildash
est bien adapté à une utilisation dans un système d' exploitation moderne, mais ce qu'il est bien adapté pour est un profil bas, shell rapide pour les scripts - en particulier, l' exécution de scripts système lors du démarrage d' un grand système d' exploitation complexe, moderne, avec un minimum frais généraux de performance.