Yanıtlar:
{ a && b && c; } >capture_file 2>&1
Yeniden yönlendirme sırasına dikkat edin: önce stdout'u yeniden yönlendirmeniz gerekir.
2>&1, stdout (1) hedefini stderr (2) 'ye çoğaltmak anlamına gelir, bu nedenle önceden stdout yönlendirmesini ayarlamadığınız sürece işe yaramaz.
2>capture_file >&2(ama yapma, çünkü bu deyimsel değil). Önemli olan, bu akışı diğerine çoğaltmadan önce bunlardan birini dosyaya yönlendirmenizdir.
Komut gruplamasını kullanmanın yanı sıra {}, komutları bir alt kabukta çalıştırabilir ve çıktıyı (ve / veya hatayı) bir kerede yakalayabilirsiniz:
( a && b && c ) >file.txt 2>&1
Misal :
$ ( echo foo && echo bar && echo baz && echos foo ) >check 2>&1
$ cat check
foo
bar
baz
No command 'echos' found, did you mean:
Command 'echo' from package 'coreutils' (main)
echos: command not found