ฉันรู้คำตอบสำหรับเชลล์บางตัวเช่นcmd.exeคุณสามารถ:
some.exe > out.txt 2>&1คุณจะประสบความสำเร็จเช่นเดียวกันสำหรับกระสุนอื่น ๆ ได้อย่างไร (bash, ksh, tcsh, powershell, ฯลฯ )
ฉันรู้คำตอบสำหรับเชลล์บางตัวเช่นcmd.exeคุณสามารถ:
some.exe > out.txt 2>&1คุณจะประสบความสำเร็จเช่นเดียวกันสำหรับกระสุนอื่น ๆ ได้อย่างไร (bash, ksh, tcsh, powershell, ฯลฯ )
คำตอบ:
ปลาเปลือกหอย
หากต้องการเปลี่ยนเส้นทางทั้งเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปที่ไฟล์ all_output.txt คุณสามารถเขียน:
echo Hello > all_output.txt ^&12>&1ยังทำงาน - เป็นหลักจดชวเลขของปลาสำหรับ^ >2โปรดทราบว่า2>| lessหรือ^| lessด้วยตัวเองไปป์stderr เท่านั้น ; เพื่อส่งทั้งความผิดพลาดของเราไปทำ^&1 | less
                    ในPowershellมันเหมือนกันทุกประการ:
2> & 1 ส่งข้อผิดพลาดไปยังไม่มีกระบวนการรับ, PowerShell 2> & 1
          กระแสเอาต์พุตความสำเร็จ
(จากabout_Redirection)
ในbashและ ksh อย่างน้อยผมก็รู้ว่ามันทำงานด้วยวิธีนี้
ดูเหมือนว่าจะเป็นการประชุมร่วมกัน
วิธีที่รวดเร็วในการค้นหาเกี่ยวกับมันคือการเปิด man page ของเชลล์และทำการค้นหา&1(ด้วย/แล้วพิมพ์&1) สิ่งนี้ไม่ค่อยเกิดขึ้นในบริบทอื่น
ในทุบตีคุณทำสิ่งเดียวกัน
./some_exec > out 2>&1