Dlaczego polecenie echo nie działa z poleceniem?


14

kiedy piszę:

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

działa, więc po minucie słychać dźwięk.

ale kiedy piszę:

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

Nie otrzymałem odpowiedzi błędu z powłoki, ale po 1 minucie nie wyświetla się również żaden tekst.

Odpowiedzi:


23

Polecenia uruchamiane przez at nie działają w terminalu, w którym zostały zarejestrowane. Nie ma to w ogóle sensu: terminal może już nie istnieć lub może być używany przez innego użytkownika. Być może wylogowałeś się do czasu uruchomienia polecenia.

Dane wyjściowe polecenia at są wysyłane pocztą e-mail. To lokalny adres e-mail w systemie Unix, a nie jakiekolwiek zewnętrzne konto POP lub IMAP, które możesz skonfigurować w jakimś programie pocztowym. Jeśli lokalny adres e-mail nie jest skonfigurowany, dane wyjściowe polecenia są tracone. Jeśli Twój lokalny adres e-mail nie jest skonfigurowany, ten przewodnik może ci pomóc.

Jeśli chcesz, aby polecenie at współdziałało z twoim terminalem, musisz użyć jawnego przekierowania. Na przykład:

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

Zauważ, że w tym fragmencie zmienna TTYjest rozwijana przez powłokę, więc dane wejściowe atto coś w rodzaju echo hello >/dev/pts/42.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.