Tại sao lệnh echo không hoạt động với lệnh?


14

khi tôi gõ:

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

nó hoạt động, vì vậy sau một phút thực sự có âm thanh phát ra.

nhưng, khi tôi gõ:

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

Tôi không nhận được phản hồi lỗi từ shell, nhưng sau 1 phút cũng không có văn bản nào hiển thị.

Câu trả lời:


23

Các lệnh được chạy tại không chạy trong thiết bị đầu cuối nơi chúng đã được đăng ký. Điều này sẽ không có ý nghĩa chung: thiết bị đầu cuối có thể không còn tồn tại nữa hoặc nó có thể được sử dụng bởi một người dùng khác. Bạn thậm chí có thể đã đăng xuất khi thời gian lệnh chạy.

Đầu ra từ một lệnh at được gửi cho bạn qua email. Đó là email Unix cục bộ, không phải bất kỳ tài khoản POP hoặc IMAP bên ngoài nào bạn có thể đã thiết lập trong một số chương trình email. Nếu email cục bộ của bạn không được thiết lập, đầu ra từ lệnh sẽ bị mất. Nếu email cục bộ của bạn không được thiết lập, hướng dẫn này có thể giúp bạn.

Nếu bạn muốn một lệnh at tương tác với thiết bị đầu cuối của mình, bạn cần sử dụng chuyển hướng rõ ràng. Ví dụ:

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

Lưu ý rằng trong đoạn mã này, biến TTYđược mở rộng bằng shell, vì vậy đầu vào atlà giống như vậy echo hello >/dev/pts/42.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.