ฉันกำลังเขียนสคริปต์เพื่อปรับใช้โครงการกับเซิร์ฟเวอร์หลายเครื่อง (9 และกำลังเพิ่มขึ้นเรื่อย ๆ ) ด้วยการบีบอัดการคัดลอกและการเชื่อมต่อระยะไกลสคริปต์จะกลายเป็นค่อนข้างช้าอย่างรวดเร็ว ดังนั้นตอนนี้ฉันกำลังตรวจสอบว่าสคริปต์เรียกผู้ช่วยทำงานผ่านหน้าจอ เวิร์กโฟลว์ในอุดมคติใน pseudocode มีดังนี้:
deployment script
accept user input for deployment parameters
echo "deployment initiated"
TTY=`tty`
start helper 1 in detached screen, dumped to a temp file
exit
helper 1
export from SVN
compress files
upload to temporary directory on live servers
swap old and new web directories on live servers
* start helper 2 in $TTY
exit
helper 2
echo "deployment done"
echo "do you want to view deployment log? [y/N]"
take user input
if yes
output temp file
delete temp file
exit
ทุกอย่างนั้นง่ายพอยกเว้นคำสั่งที่มีเครื่องหมาย * ฉันสามารถไปป์ข้อความแบบสแตติกwrite $TTY
ได้ แต่เพื่อรับอินพุตผู้ใช้ฉันจะต้องเรียกใช้งานเชลล์สคริปต์จากภายนอกเทอร์มินัลที่จะแสดง มีวิธีการทำเช่นนี้?
(ฉันใช้ CentOS บนเซิร์ฟเวอร์ dev อยู่แล้ว)
yes no | yourscript.sh
ตลอดเวลาซึ่งมันน่ารำคาญนิดหน่อยและไม่จำเป็น tl; dr: ทำให้เป็นแบบไม่โต้ตอบ