[sh]stock le résultat d'un script interactif
Résolu
Nebbb
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
D'un coté j'ai écrit un script en shell qui nécessite une intervention de l'utilisateur pour renvoyer un résultat ( qui est différent suivant l'intervention, cela va sans dire ).
Et de l'autre coté dans un autre script j'aimerais lancer mon premier script, attendre l'intervention de l'utilisateur et utiliser le résultat renvoyé dans le développement de mon 2eme script.
A noter que je n'ai pas le droit d'assembler ces deux scripts ( ce qui aurait été plus simple je l'avoue ).
Donc j'aimerais stocker dans une variable le résultat d'un script qui demande une intervention extérieure.
Merci
D'un coté j'ai écrit un script en shell qui nécessite une intervention de l'utilisateur pour renvoyer un résultat ( qui est différent suivant l'intervention, cela va sans dire ).
Et de l'autre coté dans un autre script j'aimerais lancer mon premier script, attendre l'intervention de l'utilisateur et utiliser le résultat renvoyé dans le développement de mon 2eme script.
A noter que je n'ai pas le droit d'assembler ces deux scripts ( ce qui aurait été plus simple je l'avoue ).
Donc j'aimerais stocker dans une variable le résultat d'un script qui demande une intervention extérieure.
Merci
3 réponses
-
Je vois plusieurs solutions possibles. Tu peux utiliser exit ou return à la fin de ton deuxième script pour retourner une valeur. En fonction de cette valeur tu saura ce qui s'est passé dans le deuxième script depuis le premier.
une autre solution est d'utiliser "source" comme ça les variables créées dans le deuxième script seront conservées.
ou comme le suggère zipe31 un fichier de stockage.-
Salut,
Effectivement, "sourcer" parait la meilleure solution mais ça dépend grandement des scripts en eux-même ;-\
Un petit exemple de mise en oeuvre :
$ cat fich1.sh #! /bin/bash read -p "Entrez votre nom : " NOM $ cat fich2.sh #! /bin/bash . ./fich1.sh echo "Votre nom est : $NOM" $ ./fich2.sh Entrez votre nom : zipe31 Votre nom est : zipe31 $
;-))
-
-
Salut,
Voir du côté des tubes nommés (fifo)...
man fifo
man mkfifo
-
Effectivement l'exemple de Zipe31 fonctionne très bien.
J'avais entre temps trouvé la même solution en appelant le fichier fich1.sh avec la commande source :
$ cat fich2.sh #! /bin/bash source ./fich1.sh echo "Votre nom est : $NOM"
Donc nickel, merci beaucoup !