A voir également:
- Nième paramètre d'un script
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Script vidéo youtube - Guide
- Parametre windows - Guide
- Netflix paramètre compte - Guide
6 réponses
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}"
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
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).