Secondo " Linux: The Complete Reference 6th Edition " (pag. 44), è possibile reindirizzare solo STDERR utilizzando i |&simboli di reindirizzamento.
Ho scritto uno script abbastanza semplice per testare questo:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
Eseguo questo script in questo modo:
./script.sh |& sed 's:^:\t:'
Presumibilmente, verranno indentate solo le righe stampate su STDERR. Tuttavia, in realtà non funziona in questo modo, come vedo:
Normal Text.
Error Text.
Cosa sto facendo di sbagliato qui?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'non funziona come previsto, vale a dire: redirectscript.sh'sstdout(che, secondo il frammento di manuale dovrebbe accadere prima), quindi lasciaregrepper elaborare la sceneggiatura distderr. Invece,stderre tdout` finiscono entrambi instdout_goes_here