Je souhaite savoir comment faire en sorte qu'un script puisse reconnaitre si il a un pipe sur son entrée pour que :
Si je lui envoie des données en pipe : -il traite stdin
Si je lui donne un fichier en paramêtre : -il traite les données de ce fichier
Si je ne lui met aucun argument et aucun pipe: -il quitte sans rien faire.
Tester si c'est un terminal, c'est possible en shell (test -t 0). C'est vraissemblablement d'ailleurs mieux que de tester si c'est un pipe car je doute que tu veuilles traiter
script < fichier
de maniere differente que
cat fichier | script
(Mais bon perso j'aime vraiment pas ce genre de comportement ou on depend de la source)
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Pim <moi@free.fr> writes:
Bonjour,
Je travaille sous Linux Debian.
Je souhaite savoir comment faire en sorte qu'un script puisse
reconnaitre si il a un pipe sur son entrée pour que :
Si je lui envoie des données en pipe :
-il traite stdin
Si je lui donne un fichier en paramêtre :
-il traite les données de ce fichier
Si je ne lui met aucun argument et aucun pipe:
-il quitte sans rien faire.
Tester si c'est un terminal, c'est possible en shell (test -t 0).
C'est vraissemblablement d'ailleurs mieux que de tester si c'est un
pipe car je doute que tu veuilles traiter
script < fichier
de maniere differente que
cat fichier | script
(Mais bon perso j'aime vraiment pas ce genre de comportement ou on
depend de la source)
A+
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je souhaite savoir comment faire en sorte qu'un script puisse reconnaitre si il a un pipe sur son entrée pour que :
Si je lui envoie des données en pipe : -il traite stdin
Si je lui donne un fichier en paramêtre : -il traite les données de ce fichier
Si je ne lui met aucun argument et aucun pipe: -il quitte sans rien faire.
Tester si c'est un terminal, c'est possible en shell (test -t 0). C'est vraissemblablement d'ailleurs mieux que de tester si c'est un pipe car je doute que tu veuilles traiter
script < fichier
de maniere differente que
cat fichier | script
(Mais bon perso j'aime vraiment pas ce genre de comportement ou on depend de la source)
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Stephane Chazelas
2004-01-26, 14:32(+01), Stephane Chazelas: [...]
Sinon, pour vérifier que c'est un pipe,
if perl -MPOSIX -e 'exit !S_ISFIFO((stat STDIN)[2])'; then