bash pour la boucle de travailler en ligne de commande, mais pas dans le script
Lorsqu'une exécutez une instruction for dans debian en ligne de commande bash, il fonctionne très bien.
Mais quand je le lance dans un script sh ou de l'exécuter avec la commande bash, c'est garder le rapport d'erreur "près de jeton inattendu "faire""
Où est la différence?
[leon@www] ~/tmp $ for i in {1..10}; do echo $i; done
1
2
3
4
5
6
7
8
9
10
[leon@www] ~/tmp $ bash for i in {1..10}; do echo $i; done
-bash: syntax error near unexpected token `do'
BTW, tous fonctionne bien dans centos nécessitant.
OriginalL'auteur leon | 2011-08-15
Vous devez vous connecter pour publier un commentaire.
Utiliser le
-c
option, de sorte que bash lit les commandes à partir de la chaîne que vous transmettez. Aussi, utilisez des guillemets simples autour de la commande.OriginalL'auteur dogbane
votre ligne de commande bash se termine avec la première ;
donc, il est exécuté séparément:
et man bash dit argument de la commande doit être un fichier à charger: bash [options] [fichier]
OriginalL'auteur atlau
Vous pouvez envelopper tous de votre script à l'intérieur de guillemets ou dans un fichier. Car ici, vous êtes en train de faire
bash for i in {1..10}
puisdo echo $i
et ainsi de suite. Vous devriez utiliser l'option-c si vous n'avez pas la mettre dans un fichier.OriginalL'auteur Cydonia7