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: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'
Marsh Posté le 19-03-2004 à 11:48:53
ah bah oui je suis bête
Merci
En fait je suis obligé de passer par un pipe c'est pour ça
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.
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 : |
Voui ça je connaissais déjà ( j'utilise souvent pour logguer mes compilations et scritps )
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à
Si quelqu'un peut me donner la réponse ça serait cool merci