A parte l'utilizzo di un file temporaneo per aiutare, c'è un modo / programma che può bufferizzare l'input stdin
ma non emette il contenuto fino a quando non ottiene il file EOF
. Non voglio nemmeno usare una variabile di shell (ad es buffer=$(cat)
.).
Questo programma dovrebbe funzionare come di seguito (supponiamo che il nome del programma sia buffered-cat
):
$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)
Ora che il programma ha ricevuto ^D
, buffered-cat
i contenuti vengono emessi
line 1
line 2
line 3
sort
per questo scopo. Ovviamente ha effetti collaterali che potrebbero essere indesiderati.