ฉันมีโปรแกรมPที่คาดว่าจะได้รับ "สวัสดี" และส่งออก "ทำไม" ก่อนที่จะให้คุณสมบัติ คุณลักษณะนี้ใช้งานโดยโปรแกรมอื่นที่ไม่ทราบว่ามันเป็นมารยาททั่วไปในการเริ่มการสนทนากับ "Hello" ฉันจึงต้องการเขียน wrapper สำหรับPที่ทำงานเช่นนี้ (ไวยากรณ์ zsh):
coproc P
print -p Hello # Send Hello to P
read -pr line # Read what P has to say
[[ "$line" = "Why?" ]] && Replace current process with the coprocess.
echo Could not get P's attention.
การใช้catหรือddในReplace...บางส่วน (บางอย่างเช่นcat <&p &; exec cat >&p) ส่งผลให้มีการบัฟเฟอร์ที่ไม่จำเป็น ตัวเลือกของฉันคืออะไร?
bashวิธีการแก้ปัญหาที่ไม่สามารถใช้ได้zshแต่จะยอมรับได้อย่างแน่นอนa
ssh ProxyCommand
catโดยทั่วไปจะไม่บัฟเฟอร์ cat -uถ้ามันไม่เกี่ยวกับระบบของคุณลอง
zshทางออกหรือbashยอมรับวิธีแก้ปัญหาหรือไม่?