Linux i redirect stdout stderr
luty 23, 2008 autor rofrol
Co na początek warto wiedzieć
1. Oznaczenia różnych strómieni w Linuksie
0 = stdin
1 = stdout
2 = stderr
2. stderr domyślnie jest wyświetlane na ekran. Poniższe polecenie zapisze do pliku tylko stdout.
polecenie >plik.txt
3. Możemy zapisać do pliku tylko stderr
polecenie 2>plik.txt
4. Ale możemy też zapisać oba strumienie do pliku. Strumienie stdout i stderr można połączyć, ale uwaga, łączenie powinno wystąpić za nazwą pliku
polecenie >plik.txt 2>&1
5. Możemy też do oddzielnych plików wysyłać
polecenie 1>out.txt 2>err.txt
3. stderr nie przechodzi przez rurę (ang. pipe) czyli przez |. A kiedy chcemy przepuścić stderr przez rurę? Np. wysyłać całe wyjście do pliku i na ekran używajć tee. Polecenie poniżej, ale mi nie działa.
(((./cmd | tee stdout.txt) 3>&1 1>&2 2>&3 \
| tee stderr.txt) 3>&1 1>&2 2>&3) 1>out.txt 2>err.txt
Więcej na http://www.cpqlinux.com/redirect.html
Napisz odpowiedź
Musisz być zalogowany aby móc dodać komentarz.