जवाबों:
{ a && b && c; } >capture_file 2>&1
पुनर्निर्देशन के क्रम पर ध्यान दें: आपको पहले स्टडआउट को पुनर्निर्देशित करना होगा।
2>&1मतलब है कि stdout (1) से stderr (2) के गंतव्य की नकल करना, इसलिए यह तब तक बेकार होगा जब तक आप पहले से stdout पुनर्निर्देशन सेट नहीं करते।
2>capture_file >&2(लेकिन ऐसा नहीं है, क्योंकि यह मुहावरा नहीं है )। महत्वपूर्ण बात यह है कि आप उनमें से एक को उस स्ट्रीम को दूसरे से डुप्लिकेट करने से पहले फाइल करने के लिए रीडायरेक्ट करते हैं।
कमांड ग्रुपिंग का उपयोग करने के अलावा, {}आप कमांड को एक सबशेल में भी चला सकते हैं और आउटपुट (और / या त्रुटि) को एक ही बार में कैप्चर कर सकते हैं:
( a && b && c ) >file.txt 2>&1
उदाहरण :
$ ( 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