A voir également:
- Nième paramètre d'un script
- Script vidéo youtube - Guide
- Netflix paramètre compte - Guide
- Remettre parametre usine pc - Guide
- Parametre windows - Guide
- Changer parametre dns - Guide
6 réponses
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
6 mai 2005 à 11:21
6 mai 2005 à 11:21
Dans la bash shell les parametres sont $0, $1, $2, ... et l'ensemble c'est: $@
Par contre ici le $n ne marche pas si n contient une valeur. Pour ca tu peux utiliser:
De facon generale: ${VAR:a:n} prend les elements a, a+1, a+n-1, de VAR (si les elements sont separes par de blancs).
Regarde "man bash" !
Par contre ici le $n ne marche pas si n contient une valeur. Pour ca tu peux utiliser:
${@:$n:1}
De facon generale: ${VAR:a:n} prend les elements a, a+1, a+n-1, de VAR (si les elements sont separes par de blancs).
Regarde "man bash" !
il me dit "substitution incorrecte", voilà mon code qui l'utilise si ca peut t'éclaircir...
callMenu() { integer n echo "0. Tout arreter" n=0 for i in $@ do n=$n+1 echo "$n. $i" done echo "Votre choix? \c" read c echo "${@:$c:1}"
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
6 mai 2005 à 12:31
6 mai 2005 à 12:31
j'ai teste avec ce script:
et ca marche si j'appelle le script: "<nom_script> 1 2 3 4 5 6 "
Ton truc marche aussi chez moi (si j'enleve la structure "callmenu" et la ligne "integer n" est rejete chez moi).
Je ne vois pas ou il y a le probleme, peut-etre il te faudra simplement utiliser le bash-shell de GNU et le sh de Sun est trop primitive pour ca.
n=3 echo start echo ${@:$n:1} echo stop
et ca marche si j'appelle le script: "<nom_script> 1 2 3 4 5 6 "
Ton truc marche aussi chez moi (si j'enleve la structure "callmenu" et la ligne "integer n" est rejete chez moi).
Je ne vois pas ou il y a le probleme, peut-etre il te faudra simplement utiliser le bash-shell de GNU et le sh de Sun est trop primitive pour ca.
bon je suis simplement passer par un tableau pour stocker mes paramètres (faut dire que je suis pas complétement libre : c'est pour mon stage et faut que je fasse le script en ksh qu'on m'a dit )
en tout cas, merci encore de ton aide!
en tout cas, merci encore de ton aide!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kmf31
Messages postés
1564
Date d'inscription
mercredi 30 mars 2005
Statut
Contributeur
Dernière intervention
22 juin 2007
501
6 mai 2005 à 13:19
6 mai 2005 à 13:19
Quand je fais avec "ksh" (1ere ligne: "#!/usr/bin/ksh" dans le script) il me fait la meme erreur: bad substitution. Par contre avec
"#!/bin/sh" ca marche.
Donc c'est une difference entre ksh et sh ou bash. Il te faudra chercher la doc avec "man ksh" pour voir comment faire (si c'est absolument necessaire avec ksh).
"#!/bin/sh" ca marche.
Donc c'est une difference entre ksh et sh ou bash. Il te faudra chercher la doc avec "man ksh" pour voir comment faire (si c'est absolument necessaire avec ksh).