problème shell bash sur variables - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 09-10-2005 à 14:43:10
Tu as $* et $@ pour recuperer tous les arguments
Si tu veux recuperer seulement certains arguments, j'ai trouvé un truc qui peut peut-etre t'aider: ( http://madchat.org/coding/sh/write [...] ipt-fr.htm )
#parcourir la liste d'arguments |
A adapter suivant ton porbleme.
Tu peux aussi lister les argument avec $* et des separateurs (varaible IFS) pour les utiliser avec cut, c'est un peu bourrin
Marsh Posté le 09-10-2005 à 14:51:19
Waouh, je n'avais jamais vu cette question de ma vie, et en deux jours elle a été posée deux fois sur ce forum Complot des modos du FBI ?
for ((j=1 ; j <= $# ; ++j)) |
Mais en bash, on écrirait plutôt ton bout de script ainsi :
for i in "$@" |
Plus court, plus facile à lire, portable, bref smieux (n'est ce pas sebchap ? )
Marsh Posté le 09-10-2005 à 14:56:23
STFU
Il ne voulait peut-etre pas tous les arguments
Marsh Posté le 09-10-2005 à 15:19:46
merci bcp pour vos reponses
en effet c'était bien le code suivant qu'il me fallait
for i in "$@"
do
echo $i
done
Merci bcp
Marsh Posté le 09-10-2005 à 15:25:21
encore une petite question j'ai besoin que i commence à 2 comment faire ?
Marsh Posté le 09-10-2005 à 15:28:01
Essaye voir avec shift
a mettre avant le for, mais tu perds le contenu de $1 si tu ne l'as pas sauver dans une autre variable.
Marsh Posté le 09-10-2005 à 15:42:19
j'ai essayé mais ça ne marche pas car j'ai besoin de $1 pour la suite de mon script
Marsh Posté le 09-10-2005 à 15:51:21
Dans ce cas, tun 'as qu'a la sauver dans une autre variable.
#!/bin/sh |
Marsh Posté le 09-10-2005 à 15:51:27
c'est bon je me suis débrouillé
j'ai tt simplement copié $1 dans une autre variable.
Grand merci a vous pour votre aide
Marsh Posté le 09-10-2005 à 15:52:01
Et non, tu ne m'auras pas grillé
Marsh Posté le 09-10-2005 à 15:52:17
ReplyMarsh Posté le 09-10-2005 à 15:55:10
jlighty a écrit : tu fais :
|
oui, encore mieux
Marsh Posté le 09-10-2005 à 14:12:25
Bonjour,
Voila je commence la programation sous linux et je rencontre quelques difficulté au niveau des variables.
En effet quand on fait appel a un programme on lui passe plusisieurs paramètres.
ex : on appelle le script test avec 3 arguments args1 args2 et args3 ce qui donne
test args1 args2 args3
args1 à 3 sont respectivement sotcké dans $1 , $2 , $3 et $# compte le nombre d'arguments jusqu'ici pas de soucis.
Mais la ou ce se complique c'est que j'aimerais faire une boucle pour récupérer tt les argument 1 à 3 comment faire ?
ex :
for ((j=1 ; j <= $# ; ++j))
do
echo "$($j)"
done
le problème c'est que j'aimerais que le echo m'affiche mes 3 arguments qui sont args1 args2 et args3.
$j vaut 1,2 puis 3
et je n'arrive pas a lui faire prendre le $devant les chiffres pour qu'il m'affiche non pas 1, 2 et 3 mais $1 à $3.
Merci d'avance pour votre aide...