Arguments commande sh
bernard
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un script shell que j'appelle essai.sh, donc si je l'appelle avec plusieurs arguments ça me fait:
./essai.sh arg1 arg2 arg3 arg4 arg5...
dans ce script je souhaite faire une boucle de l'argument 3 à l'argument n .
ON se rend compte que si j'écris : for i in "$@", ça ne marche pas car ça me compte tous les arguments.
Alors je pensais déclarer une variable que je nomme incrément et que j'initialise à 3: $incrément = 3.
et ensuite ma boucle ressemblerait à ceci:
for i in $incrément
...
...
incrément = `expr $incrément + 1`
Pensez vous que ça peut marcher avec ceci? Je vous demande ça car je souhaiterais savoir si ma méthode ne va pas boucler à l'infini svp?
merci
j'ai un script shell que j'appelle essai.sh, donc si je l'appelle avec plusieurs arguments ça me fait:
./essai.sh arg1 arg2 arg3 arg4 arg5...
dans ce script je souhaite faire une boucle de l'argument 3 à l'argument n .
ON se rend compte que si j'écris : for i in "$@", ça ne marche pas car ça me compte tous les arguments.
Alors je pensais déclarer une variable que je nomme incrément et que j'initialise à 3: $incrément = 3.
et ensuite ma boucle ressemblerait à ceci:
for i in $incrément
...
...
incrément = `expr $incrément + 1`
Pensez vous que ça peut marcher avec ceci? Je vous demande ça car je souhaiterais savoir si ma méthode ne va pas boucler à l'infini svp?
merci
A voir également:
- Arguments commande sh
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
6 réponses
Salut,
;-))
[tmpfs]$ cat foo.sh #!/bin/bash #set -xv i=3 while [ "$i" -le "5" ] do eval echo "\$$i" ((i++)) done [tmpfs]$ ./foo.sh a b c d e f g h c d e [tmpfs]$
;-))
bernard
salut jipicy, ta méthode est trop évoluée pour moi lol, je ne peux pas la retenir, en plus elle doit marcher pour n arguments et non 5, j'ai pris 5 au hasard. Penses tu que ma méthode soit valable?
hello
$ ./f a b c d e f g h c d e f g h $ ./f arg1 arg2 arg3 arg4 arg5 arg3 arg4 arg5 $ cat f #!/bin/bash for((arg=3; arg <= $#;arg++)) ; do echo ${!arg} ; done
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question