Чому команда echo не працює з командою?


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, не запускаються в терміналі, де вони були зареєстровані. Це взагалі не має сенсу: термінал більше не може існувати або він може використовуватися іншим користувачем. Можливо, ви навіть вийшли з системи до моменту запуску команди.

Вихід з команди at надсилається вам електронною поштою. Це локальна електронна пошта Unix, незалежно від зовнішнього облікового запису POP або IMAP, який ви могли створити в якійсь програмі електронної пошти. Якщо ваша локальна електронна адреса не налаштована, вихід з команди втрачається. Якщо ваша локальна електронна адреса не налаштована, цей посібник може вам допомогти.

Якщо ви хочете, щоб команда at взаємоділа з вашим терміналом, вам потрібно скористатися явним перенаправленням. Наприклад:

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

Зауважте, що в цьому фрагменті змінна TTYрозширюється оболонкою, тому вхід до atякогось подібний echo hello >/dev/pts/42.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.