Récupèrer la valeur passée dans le pipe avec un script shell

Récupèrer la valeur passée dans le pipe avec un script shell - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 19-03-2004 à 11:28:12    

Salut,  
 
je viens de me rendre compte que bêtement je savais pas récupérer la valeur passée dans le pipe avec un script shell derrière.
 
genre : echo plop | script.sh
 
Comment récupérer la valeur "plop" dans le contenu du script ?
 
Je pensais que c'était par les argumets ( $* ) mais en fait non alors j'ai une grosse lacune là :D
 
Si quelqu'un peut me donner la réponse ça serait cool merci :)
 

Reply

Marsh Posté le 19-03-2004 à 11:28:12   

Reply

Marsh Posté le 19-03-2004 à 11:32:01    

avec xargs ?

Reply

Marsh Posté le 19-03-2004 à 11:43:50    

Dans un pipe, le stdout de la commande de gauche devient le stdin de la commande de droite.
Dans ton script, tu obtiens les valeurs en lisant stdin.
Pour ton example, dans ton script tu récupère la valeur par :
read ma_valeur
 
 
Si tu veux passer tes valeurs en tant que parametres ($*), tu dois faire :
script.sh `echo plop paglop`    => $#=2 $1=plop $2=paglop
 
ou
script.sh "`echo plop`"         => $#=1 $1='plop paglop'


Message édité par aigles le 19-03-2004 à 11:44:51

---------------
Jean Pierre.
Reply

Marsh Posté le 19-03-2004 à 11:48:53    

ah bah oui je suis bête :jap:
 
Merci :)
 
En fait je suis obligé de passer par un pipe c'est pour ça ;)

Reply

Marsh Posté le 19-03-2004 à 14:23:14    

Tu peux également faire appel à 'tee' pour récupérer une valeur dans un fichier tout en laissant la sortie standard s'afficher. Je m'explique :
 
echo toto | tee -a mon_fichier.log | bougliboulga.sh
 
Tu auras toto dans ton fichier mon_fichier.log et il sera quand traité dans ton script bougliboulga.sh.

Reply

Marsh Posté le 19-03-2004 à 17:20:44    

yannigperr a écrit :

Tu peux également faire appel à 'tee' pour récupérer une valeur dans un fichier tout en laissant la sortie standard s'afficher. Je m'explique :
 
echo toto | tee -a mon_fichier.log | bougliboulga.sh
 
Tu auras toto dans ton fichier mon_fichier.log et il sera quand traité dans ton script bougliboulga.sh.


 
Voui ça je connaissais déjà :jap: ( j'utilise souvent pour logguer mes compilations et scritps )

Reply

Sujets relatifs:

Leave a Replay

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