Script Bash : appeler un script avec une chaîne en option

Script Bash : appeler un script avec une chaîne en option - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 09-12-2007 à 16:48:07    

Salut à tous :)
 
Voici mon souci : j'ai écris un script test.sh qui va appeler soit ./cowtime.sh, soit ./othercow.sh
 
Je passe en paramètres de test.sh les options de cowtime.sh ou othercow.sh (qui sont exactement les mêmes en fait), mais également
l'option -v qui va décider si je lance cowtime ou othercow.
 
Le soucis, c'est que quand je veux lancer cowtime.sh ou othercow.sh dans test.sh, je dois leur passer les bons paramètres, c'est à dire ceux que j'ai déjà passés à test.sh
 
Pour cela je les ai stockés dans une variable optstmp, puis j'appelle alors les fonctions comme cela :  
./cowtime.sh "$optstmp"
ou
./othercow.sh "$optstmp"
 
mais cela ne fonctionne pas :( Il appelle bien les fonctions choisies mais ne prend pas en compte les paramètres passés :o
 
Voici mon code :  

Code :
  1. #!/bin/bash
  2. optstmp=""
  3. vachechoisie="othercow"
  4. while getopts e:t:dp:v: option
  5. do
  6. if [ "$option" = "e" ]
  7. then
  8.  optstmp="$optstmp -$option $OPTARG"
  9. fi
  10. if [ "$option" = "t" ]
  11. then
  12.  optstmp="$optstmp -$option $OPTARG"
  13. fi
  14. if [ "$option" = "d" ]
  15. then
  16.  optstmp="$optstmp -$option"
  17. fi
  18. if [ "$option" = "p" ]
  19. then
  20.  optstmp="$optstmp -$option $OPTARG"
  21. fi
  22. if [ "$option" = "v" ]
  23. then
  24.  vachechoisie="$OPTARG"
  25. fi
  26. done
  27. echo "$optstmp"
  28. if [ "$vachechoisie" = "othercow" ]
  29. then
  30.  ./othercow.sh "$optstmp"
  31. else
  32.  ./cowtime.sh "$optstmp"
  33. fi


Message édité par tibzz le 09-12-2007 à 16:49:18

---------------

Reply

Marsh Posté le 09-12-2007 à 16:48:07   

Reply

Marsh Posté le 10-12-2007 à 11:11:19    

et ça te donne quoi comme erreur ?
 
ton echo "$optstmp" affiche quoi ?
qu'afficherait un echo "$vachechoisie" ?

Reply

Marsh Posté le 10-12-2007 à 23:58:34    

echo "$optstmp" affiche bien les bons paramètres passés à la fonction


---------------

Reply

Marsh Posté le 11-12-2007 à 03:51:41    

A tu exporté la variable ?
 
 
 
optstmp=foobar
export optstmp
 
ou en bash :
export optstmp=foobar

Reply

Marsh Posté le 11-12-2007 à 06:48:44    

ah non, j'essaye et je te tiens au courant :)


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed