Menurut " Linux: The Complete Reference 6th Edition " (hal 44), Anda hanya dapat mem- pipe STDERR menggunakan |&
simbol pengalihan.
Saya telah menulis skrip yang cukup sederhana untuk menguji ini:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
Saya menjalankan skrip ini seperti ini:
./script.sh |& sed 's:^:\t:'
Agaknya, hanya garis yang dicetak ke STDERR yang akan diindentasi. Namun, sebenarnya tidak berfungsi seperti ini, seperti yang saya lihat:
Normal Text.
Error Text.
Apa yang saya lakukan salah di sini?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'
tidak bekerja sebagaimana dimaksud, yaitu: redirectscript.sh
'sstdout
(yang menurut potongan pengguna harus terjadi dahulu), kemudian memungkinkangrep
untuk memproses scriptstderr
. Sebaliknya,stderr
dan tdout` keduanya berakhir distdout_goes_here