5
วิธีการ "รวม" บรรทัดที่พิมพ์โดยหลาย ๆ โปรแกรมอย่างปลอดภัย?
สมมติว่าฉันต้องการรันหลาย ๆ โปรแกรมในแบบคู่ขนานและรวมเอาท์พุทของมันเข้ากับไพพ์เดียว: sh -c ' (echo qqq; echo qqq2; echo qqq3)& (echo www; echo www2; echo www3)& (echo eee; echo eee2; echo eee3)& wait; wait; wait' วิธีเชลล์นี้ใช้งานได้ดีสำหรับกรณีง่าย ๆ นี้ แต่ฉันคาดหวังว่ามันจะล้มเหลวหากโปรแกรมส่งออกบรรทัดมากขึ้นและนานขึ้นในลักษณะบัฟเฟอร์เช่นนี้ (สร้างขึ้น): qqq qqwww q2 qqq3www2 wwweee3 eee2 eee3 หนึ่งในวิธีแก้ปัญหาที่ฉันบอกใบ้ให้ใช้คือtail -f: tail -n +0 -q -f <(echo qqq; echo qqq2; …