I mają szereg poleceń, A, B, C, co mam łańcuchowy wraz z &&: a && b && c
.
Chcę przechwycić dane wyjściowe wszystkich poleceń zarówno na stdout, jak i stderr.
a && b && c 2>&1 > capture_file
przechwytuje tylko dane wyjściowe polecenia c.
shell
io-redirection
TLOlczyk
źródło
źródło
2>&1
oznacza duplikowanie miejsca docelowego stdout (1) na stderr (2), więc byłoby bezużyteczne, chyba że wcześniej skonfigurowałeś przekierowanie stdout.2>capture_file >&2
(ale nie, bo to nie jest idiomatyczne). Ważne jest, abyś przekierował jeden z nich do pliku przed skopiowaniem tego strumienia do drugiego.Oprócz korzystania z grupowania poleceń
{}
możesz także uruchamiać polecenia w podpowłoce i jednocześnie przechwytywać dane wyjściowe (i / lub błędy):Przykład:
źródło