ทำไมคำสั่ง echo ไม่ทำงานกับคำสั่ง at?


14

เมื่อฉันพิมพ์:

at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d

มันใช้งานได้ดังนั้นหลังจากผ่านไปหนึ่งนาทีเสียงก็จะดังขึ้น

แต่เมื่อฉันพิมพ์:

at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d

ฉันไม่ได้รับการตอบกลับจากเชลล์ แต่หลังจากผ่านไป 1 นาทีจะไม่มีข้อความปรากฏขึ้น

คำตอบ:


23

คำสั่งที่เรียกใช้โดยที่ไม่ทำงานในเทอร์มินัลที่ลงทะเบียนไว้ สิ่งนี้จะไม่สมเหตุสมผลโดยทั่วไป: เทอร์มินัลอาจไม่มีอยู่อีกต่อไปหรืออาจมีการใช้งานโดยผู้ใช้รายอื่น คุณอาจออกจากระบบเมื่อถึงเวลาที่คำสั่งรัน

ผลลัพธ์จากคำสั่ง at จะถูกส่งถึงคุณทางอีเมล นั่นคืออีเมล Unix ในพื้นที่ไม่ใช่บัญชี POP หรือ IMAP ใด ๆ ที่คุณอาจตั้งค่าไว้ในโปรแกรมอีเมลบางโปรแกรม หากไม่ได้ตั้งค่าอีเมลภายในเครื่องของคุณผลลัพธ์จากคำสั่งจะหายไป หากอีเมลภายในเครื่องของคุณไม่ได้ตั้งค่าคู่มือนี้อาจช่วยคุณได้

หากคุณต้องการให้คำสั่ง at โต้ตอบกับเทอร์มินัลของคุณคุณต้องใช้การเปลี่ยนเส้นทางอย่างชัดเจน ตัวอย่างเช่น:

echo "echo hello >$TTY" | at now + 1 min

โปรดทราบว่าในตัวอย่างนี้ตัวแปรTTYจะถูกขยายจากเปลือกเพื่อให้การป้อนข้อมูลเพื่อเป็นสิ่งที่ต้องการatecho hello >/dev/pts/42

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.