“ Linux: Komple Referans 6. Baskı ” (sf. 44) 'ya göre, yönlendirme sembollerini kullanarak sadece STDERR' i |&yönlendirebilirsiniz.
Bunu test etmek için oldukça basit bir senaryo yazdım:
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
Bu betiği şu şekilde çalıştırıyorum:
./script.sh |& sed 's:^:\t:'
Muhtemelen, sadece STDERR'ye basılan çizgiler girintili olacaktır. Ancak, aslında gördüğüm gibi, bu çalışmıyor:
Normal Text.
Error Text.
Neyi yanlış yapıyorum burada?
./script.sh > /tmp/stdout_goes_here |& grep 'grepping_script_stderr'işi değil amaçlandığı gibi, yani: yönlendirmescript.sh'ınstdout(ilk gerçekleşmesi gereken manuel pasajı göre olan), daha sonra izingrepkomut en işlemek içinstderr. Bunun yerine,stderrve tdout` ikisi de sonastdout_goes_here