Script Shell, utilisation de variables
Résolu/Fermé
A voir également:
- Script Shell, utilisation de variables
- Notice d'utilisation - Guide
- Script vidéo youtube - Guide
- Utilisation chromecast - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Microsoft activation script - Accueil - Windows
3 réponses
farwarx
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
18
19 janv. 2009 à 11:57
19 janv. 2009 à 11:57
Oui, j'y viens:
Voilà ;)
Syntaxe trouvée ici:
http://www.commentcamarche.net/forum/affich 9223857 script shell et parametre
Farwarx.
#!/bin/bash echo "Total:$#" a=0 while [ "$a" -lt "$#" ] do a=$(($a + 1)) eval echo "Argument n°$a: \$$a" done
Voilà ;)
Syntaxe trouvée ici:
http://www.commentcamarche.net/forum/affich 9223857 script shell et parametre
Farwarx.
farwarx
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
18
19 janv. 2009 à 11:47
19 janv. 2009 à 11:47
Salut,
il manque comment afficher l'argument x.
#!/bin/bash echo "Total:$#" a=0 while [ "$a" -lt "$#" ] do a=$(($a + 1)) echo "Argument n°$a: " done
il manque comment afficher l'argument x.
Merci, mais je crois que je me suis mal exprime.
Le code que tu me proposes me permet d'incrementer la variable a (merci a toi^^"), cependant, moi je souhaiterai afficher a chaque tour de boucle l'argument correspondant a $a.
Si je lance le script :
./script.sh arg1 arg2 arg3 arg4
Eh bien j'aimerai qu'a chaque tour de boucle, je puisse afficher l'argument correspondant a la valeur de la variable $a.
a=0
while [ "$a" -le "$#" ]
do
a=$(($a + 1))
<affichage de arg1 si a = 1, affichage de arg2 si a=2, affichage de arg3 si a=3, etc...
done
Merci d'avance de prendre en consideration ma question.
Le code que tu me proposes me permet d'incrementer la variable a (merci a toi^^"), cependant, moi je souhaiterai afficher a chaque tour de boucle l'argument correspondant a $a.
Si je lance le script :
./script.sh arg1 arg2 arg3 arg4
Eh bien j'aimerai qu'a chaque tour de boucle, je puisse afficher l'argument correspondant a la valeur de la variable $a.
a=0
while [ "$a" -le "$#" ]
do
a=$(($a + 1))
<affichage de arg1 si a = 1, affichage de arg2 si a=2, affichage de arg3 si a=3, etc...
done
Merci d'avance de prendre en consideration ma question.
farwarx
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
18
19 janv. 2009 à 12:03
19 janv. 2009 à 12:03
De rien, à la prochaine.
N'oublies pas de mettre le statut du message en résolu (ça aide les autres).
N'oublies pas de mettre le statut du message en résolu (ça aide les autres).
Humpf, finalement me revoila, avec un souci dans la continuite de mon precedent probleme.
Grace a :
eval echo "\$$a";
J'ai pu afficher ma variable, cependant, je n'arrive toujours pas a travailler dessus.
J'aimerai pouvoir comparer le contenu avec une chaine de caracteres afin d'executer des actions sous certaines conditions :
if [ eval"\$$a" = "-k" ]
then
...
fi
Mais je ne sais pas du tout comment tourner syntaxiquement la chose pour que ca fonctionne.
Est-ce seulement possible ?
Grace a :
eval echo "\$$a";
J'ai pu afficher ma variable, cependant, je n'arrive toujours pas a travailler dessus.
J'aimerai pouvoir comparer le contenu avec une chaine de caracteres afin d'executer des actions sous certaines conditions :
if [ eval"\$$a" = "-k" ]
then
...
fi
Mais je ne sais pas du tout comment tourner syntaxiquement la chose pour que ca fonctionne.
Est-ce seulement possible ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
Ilaan
19 janv. 2009 à 15:01
19 janv. 2009 à 15:01
Salut,
Il existe un mécanisme du shell spécialement étudié pour ce que tu veux : getopts
Voir ce thread qui en parle sommairement, ainsi que le man bash (paragraphe sur "getopts").
Il existe un mécanisme du shell spécialement étudié pour ce que tu veux : getopts
Voir ce thread qui en parle sommairement, ainsi que le man bash (paragraphe sur "getopts").
Ilaan
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
19 janv. 2009 à 15:16
19 janv. 2009 à 15:16
Travaillant dans le cadre d'un exercice, cette fonction semble faire partie des "interdits". Dommage...
Au besoin je pense que je devrai la recoder... cependant, ca me semble (peut-etre a tord) beaucoup d'efforts pour faire une simple comparaison entre une chaine de caractere et une variable...
Mon probleme etant d'ailleurs simplement que je n'arrive pas a reutiliser cette variable hors d'un :
eval echo "\$$a";
Merci quand meme^^'
Au besoin je pense que je devrai la recoder... cependant, ca me semble (peut-etre a tord) beaucoup d'efforts pour faire une simple comparaison entre une chaine de caractere et une variable...
Mon probleme etant d'ailleurs simplement que je n'arrive pas a reutiliser cette variable hors d'un :
eval echo "\$$a";
Merci quand meme^^'
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
Ilaan
19 janv. 2009 à 15:33
19 janv. 2009 à 15:33
if [ $(eval echo "\$$a") = "-k" ];then
Ilaan
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
19 janv. 2009 à 15:36
19 janv. 2009 à 15:36
Merci jipicy, ca fonctionne.
Eh bien, c'est la deuxieme... peut-etre a plus tard de nouveau ^^'
Je remet "Resolu'.
Eh bien, c'est la deuxieme... peut-etre a plus tard de nouveau ^^'
Je remet "Resolu'.
19 janv. 2009 à 12:00
A la prochaine, peut-etre ^^'