Disons qu'un programme existe, qui prend deux arguments; fichier d'entrée et fichier de sortie.
Que faire si je ne souhaite pas enregistrer ce fichier de sortie sur le disque, mais plutôt le transmettre directement à stdin
un autre programme. Existe-t-il un moyen d'y parvenir?
Beaucoup de commandes que je rencontre sous Linux fournissent une option pour passer '-' comme argument de fichier de sortie, ce qui fait ce que j'ai spécifié ci-dessus. Est-ce parce que le passage stdin
d'un programme en argument n'est pas possible? Si tel est le cas, comment procédons-nous?
Un exemple de la façon dont je voudrais l'image en utilisant ceci est:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Le shell que j'utilise est bash.
cat < README.txt | cp /dev/fd/0
. Il a ditcp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? Notez également que echo
ne lit rien de stdin.
cp
un fichier nulle part. echo 1 2 3| cp /dev/fd/0 /dev/tty
va imprimer 1 2 3
. Et en passant, /dev/fd/[num]
est plus susceptible de fonctionner que /dev/std(in|out|err)
dans la plupart des cas. Voir Portabilité des liens descripteurs de fichiers sur ce à quoi vous pouvez vous attendre à travailler où.
cat <file | cmd /dev/fd/0
fonctionne sur la plupart des unités.