Substitution d'un paramètre positionel - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 29-04-2009 à 16:10:31
$2="TITI" ça marche pas? (après test apparemment non)
Sinon je vois pas, si tu appelles ton script depuis un script tu peux faire:
script 2 : ./titi.sh TOTO1 "TaVariable" TOTO3
Comme ca pas de soucis non?
Marsh Posté le 29-04-2009 à 16:36:41
$2="TITI" me donne "error found for searching command..
Sinon, disons que j'ai simplifié le problème : le paramètre positionel est subsitué par un autre paramètre de mon script (en gros arriver à faire $2=$TITI). Donc sa valeur peut changer par n'importe quelle autre
Marsh Posté le 29-04-2009 à 16:53:11
Ce que je voulais dire c'est que si tu appelles ton 2ème script depuis le premier tu n'es plus obligé d'utiliser $2 si?
Donc tu mets $titi et c'est ok non?
Marsh Posté le 29-04-2009 à 17:06:56
Merci de ton aide
Je ne peut pas appeler mon script avec $TITI sans reprendre tous les paramètres positionels ($1 $3 $4 ...). Donc ton astuce ne marche pas.
J'avais pensé à utiliser la variable $@ puis faire un awk pour substituer la deuxième valeur et remettre le tout dans $@ mais ça me paraît super lourd.
S'il y a un moyen plus propre, je suis preneur.
Marsh Posté le 29-04-2009 à 20:22:08
Ou je ne comprends pas tout ou c'est pas tres clair.
En tout cas, je ne voit pas comment tu pourrait changer $2 en shell, c'est une des limites.
En perl ca donne ca :
Citation : $ perl -e 'print $ARGV[1], $/;' a b c d |
Citation : $ perl -e '$ARGV[1] = "false"; print $ARGV[1], $/;' a b c d |
( en perl, on commence à compter les parametres positionnels à partir de zero )
Marsh Posté le 30-04-2009 à 10:28:24
Merci Sputnik. Je ne dispose pas de perl sur la machine donc il faut que ma solution soit en shell :
en gros j'appelle un script avec une multitude de paramètres (donc $1 $2 $3 $4 $5 $6 ....), dans ce script je souhaite changer la valeur du 2ème paramètre positionel $2 pour appeler un autre script avec $1, $2 modifié, $3 ...
Comme j'ai mis sur mon premier post :
sh toto.sh TOTO1 TOTO2 TOTO3
Contenu du toto.sh
Code :
|
Marsh Posté le 30-04-2009 à 17:43:19
Il peut être utile de préciser que :
Citation : #------------------------------------------------------------------------- |
cf. http://abs.traduc.org/abs-fr/ch04.html
Marsh Posté le 30-04-2009 à 21:19:19
c'était de l'algo twocats je pense ^^
nono 63, ok, j'ai compris, voici donc :
Double clique sur ce qui suit, puis copie colle tout ça dans un pseudo-terminal :
Code :
|
Observe le 2° argument...
Marsh Posté le 06-05-2009 à 17:59:51
C'est exactement ce que je cherchais sputnik.
Merci
Marsh Posté le 29-04-2009 à 16:01:09
Bonjour à tous,
j'ai une question qui va surement apparaître très simple :
dans mon script shell je reçois un certain nombre de paramètres positionnels. Je souhaiterais remplacer une valeur d'un paramètre (le deuxième) par une autre avant d'appeler un autre script.
Ex :
- script 1 : ./toto.sh TOTO1 TOTO2 TOTO3
dans le script 1, substituer TOTO2 par TITI avant d'appeler script2
=> script 2 : ./titi.sh TOTO1 TITI TOTO3
J'ai essayer avec la commande set mais il me remplace toutes les valeurs
Merci d'avance pour vos réponses.
---------------
Mon topic Achat/ventes : http://forum.hardware.fr/hfr/Achat [...] 2496_1.htm