[sh]stock le résultat d'un script interactif

Résolu
Nebbb -  
zipe31 Messages postés 36402 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


A voir également:

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
1
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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

$

;-))
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

Voir du côté des tubes nommés (fifo)...

man fifo
man mkfifo
0
Nebbb
 
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 !
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
"." (point) est un synonyme de "source" ;-))
0