
私が入力したとき:
at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d
動作するので、1分後に実際に音が再生されます。
しかし、私が入力したとき:
at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d
シェルはエラー応答を受け取りませんが、1分後にテキストは表示されません。
答え1
atによって実行されるコマンドは、そのコマンドが登録されている端末では実行されません。通常、これは意味がありません。端末が存在しなくなったり、他のユーザーが使用したりできます。コマンドの実行中にログアウトすることもできます。
atコマンドの出力が電子メールで送信されます。これは、一部の電子メールプログラムで設定した外部POPまたはIMAPアカウントではなく、ローカルのUnix電子メールです。ローカルEメールが設定されていないと、このコマンドの出力は失われます。ローカルメールが設定されていない場合、このガイド役に立つかもしれません。
atコマンドが端末と対話するには、明示的なリダイレクトを使用する必要があります。たとえば、
echo "echo hello >$TTY" | at now + 1 min
このコードでは、変数はTTY
シェルによって拡張されるため、入力は次at
のようになりますecho hello >/dev/pts/42
。