Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1585 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Evaluation des parametres de ligne de commande - Script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Evaluation des parametres de ligne de commande - Script

n°318356
kaz ander
Le médiateur :)
Posté le 02-09-2003 à 13:11:47  profilanswer
 

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 [:spamafote]
 
Merci d'avance :jap:

mood
Publicité
Posté le 02-09-2003 à 13:11:47  profilanswer
 

n°318374
Taz
bisounours-codeur
Posté le 02-09-2003 à 13:45:51  profilanswer
 

for i in $*
 do  
  echo $i;
 done;
 
ou alors avec shift
http://www.shellunix.com/sh.html

n°318411
kaz ander
Le médiateur :)
Posté le 02-09-2003 à 14:33:21  profilanswer
 

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 ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Evaluation des parametres de ligne de commande - Script

 

Sujets relatifs
[LINUX] comment ajouter une ligne dans un fichier, avec un script[bash] erreur dans un script...
Script pour attribuer un mot de passe a partir de 2 fichiers TXT[Linux-Win] Peut on lancer un script de démarrage avec un argument ?
[Evolution 1.4] Export/Import paramètres, messages[shell] connection a internet sous la ligne de commande
demande Commande, Conseils & astuce.Debian - commande mail ?
Plus de sujets relatifs à : Evaluation des parametres de ligne de commande - Script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR