Diciamo che esiste un programma, che accetta due argomenti; file di input e file di output.
Che cosa succede se non desidero salvare questo file di output su disco, ma piuttosto passarlo direttamente a stdin
un altro programma. C'è un modo per raggiungere questo obiettivo?
Molti comandi che trovo su Linux forniscono un'opzione per passare "-" come argomento del file di output, che fa ciò che ho specificato sopra. Questo perché passare stdin
un programma come argomento non è possibile? Se lo è, come lo facciamo?
Un esempio di come immaginerei di usare questo è:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
La shell che sto usando è bash.
cat < README.txt | cp /dev/fd/0
. Dicevacp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? Si noti inoltre che echo
non legge nulla dallo stdin.
cp
un file da nessuna parte. echo 1 2 3| cp /dev/fd/0 /dev/tty
stamperà 1 2 3
. A proposito, /dev/fd/[num]
è più probabile che funzioni rispetto /dev/std(in|out|err)
alla maggior parte dei casi. Vedi la portabilità dei collegamenti descrittori di file su cosa puoi aspettarti di lavorare dove.
cat <file | cmd /dev/fd/0
funziona sulla maggior parte dei computer.