Script shell et parametre
Résolu
Kawa
-
Kawa -
Kawa -
Bonjour,
j'ai decouvert les joies du script shell pendant mon stage en entreprise et je souhaite acquerir plus de competance dans ce domaine. Je me suis amuse a faire quelques petits script plus ou moins bete mais j'aurais une question
J'ai decouvert comment creer des fonctions et comment leur passer des parametres.
J'aurais aimer savoir comment faire avec un while ceci:
En gros je cherche a parcourir ma liste d'arguments, qui est variable, pour pouvoir par la suite effectuer des actions dessus.
Ce que je cherche a comprendre aussi c'est comment pouvoir incrementer une valeur et recuperer la valeur du $MA_VALEUR
Merci d'avance
j'ai decouvert les joies du script shell pendant mon stage en entreprise et je souhaite acquerir plus de competance dans ce domaine. Je me suis amuse a faire quelques petits script plus ou moins bete mais j'aurais une question
J'ai decouvert comment creer des fonctions et comment leur passer des parametres.
J'aurais aimer savoir comment faire avec un while ceci:
#!/bin/sh I=0 for I in "$@" do echo $I done
En gros je cherche a parcourir ma liste d'arguments, qui est variable, pour pouvoir par la suite effectuer des actions dessus.
Ce que je cherche a comprendre aussi c'est comment pouvoir incrementer une valeur et recuperer la valeur du $MA_VALEUR
Merci d'avance
A voir également:
- Script shell et parametre
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
5 réponses
Bonjour,
Bon pour le nombre des arguments est bien dans $#, alors voila ce que ta demander :
explication : while [ "$i" -lt "$#" ];do : tantque i < nbr d'argument.
echo "salut\n" : afficher "salut" et retour à la ligne.
i=$(expr $i + 1) : Incrémenté i.
ce script va afficher, suivant le nbr d'arguments, le msg : "salut".
;)
Bon pour le nombre des arguments est bien dans $#, alors voila ce que ta demander :
#!/bin/sh i=0; while [ "$i" -lt "$#" ];do echo "salut\n" i=$(expr $i + 1) done
explication : while [ "$i" -lt "$#" ];do : tantque i < nbr d'argument.
echo "salut\n" : afficher "salut" et retour à la ligne.
i=$(expr $i + 1) : Incrémenté i.
ce script va afficher, suivant le nbr d'arguments, le msg : "salut".
;)
Re,
Explication:
Sera mieux avec un exemple ;)
hostname#./test.sh hello world
Ici le nbr des arguments est 2.
Rq: $i contient les arguments.
alors : $0 contient "hello"
$1 contient "world"
alors l'affichage sera : hello world ( avec l'espace " ") ;)
:)
#!/bin/sh i=0; while [ "$i" -lt "$#" ];do echo $i echo " " i=$(expr $i + 1) done
Explication:
Sera mieux avec un exemple ;)
hostname#./test.sh hello world
Ici le nbr des arguments est 2.
Rq: $i contient les arguments.
alors : $0 contient "hello"
$1 contient "world"
alors l'affichage sera : hello world ( avec l'espace " ") ;)
:)
Re,
voila reponse :
$* : il liste tous les arguments et là, tant que $i prend chaque eteration une valeur de la liste, et sans le premier argument, $0 = ./test.sh
Cdt,
:)
voila reponse :
#!/bin/sh i=0; for i in "$*" do echo $i done
$* : il liste tous les arguments et là, tant que $i prend chaque eteration une valeur de la liste, et sans le premier argument, $0 = ./test.sh
Cdt,
:)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
saurais-tu aussi comment, au lieu d'afficher salut, afficher l'argument correspondant a la valeur de i?
merci :)
saurais-tu aussi comment, au lieu d'afficher salut, afficher l'argument correspondant a la valeur de i?
En gras ce qui a changé dans le script de départ : ;-))