ฉันมีโปรแกรม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
ยอมรับวิธีแก้ปัญหาหรือไม่?