Evaluation des parametres de ligne de commande - Script - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 02-09-2003 à 13:45:51
for i in $*
do
echo $i;
done;
ou alors avec shift
http://www.shellunix.com/sh.html
Marsh Posté le 02-09-2003 à 14:33:21
Merci....mais ca ne correspond pas tout a fait avec ce que je veux faire.
En fait, mon script aura un nombre variable d'arguments qui pourra etre nul. S'il est effectivement nul, je vais executer la commande sur toute la liste. Sinon, sur la liste en ligne de commande uniquement. Exemple:
(elements existant de 0 a 9)
list 1 4 6 => execute la commande sur les elements 1, 4 et 6
list => execute la commande sur les elements 0 a 9
sachant qu'en plus les arguments pourront etre soit des chiffres, soit des strings, que dans tous les cas je devrais interpreter en une string connue.
C'est pour ca que je voulais faire un truc du genre
if [ -z $1 ]
then
max=10
else
max=`expr $#`
fi
for (( i = 0; i < $max; i++ ))
do
if [ -z $1 ]
then
arg=$i
else
arg=$$i # en fait je veux avoir les arguments $1 a $# max
fi
case $arg in
"0" ) command="str0";;
"string_0" ) command="str0";; # 0 et string_0 sont equivalents
# etc
*) exit 1;;
esac
done
echo "cd $command">>fichier.txt
C'est pour avoir un traitement commun plutot que de faire une boucle for ((i=0;i<$#;i++)) et une autre boucle for $i in $*
C'est possible ?
Marsh Posté le 02-09-2003 à 13:11:47
Salut,
J'ai un tout petit soucis pour ecrire un script, et je n'arrive pas a trouver ce que je veux sur le net pour m'aider. Voila le probleme:
Je voudrais faire une boucle de tous les arguments passes en ligne de commande, et evaluer ceux-ci:
for (( i = 1; i <= $#; i++ ))
do
# exemple qui ne marche pas pour avoir la valeur de $1, $2, etc
echo "$$i"
done
En fait, je suppose que la solution se trouve autour de la syntaxe de $$i mais j'ai essaye differentes solutions, mais sans succes (y compris utiliser des eval et expr ).
La solution doit etre simple, mais
Merci d'avance