入力するとき:
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分後にはテキストも表示されません。
入力するとき:
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分後にはテキストも表示されません。
回答:
atで実行されるコマンドは、登録されたターミナルでは実行されません。これは一般的には意味がありません。端末がもう存在しないか、別のユーザーによって使用されている可能性があります。コマンドを実行するまでにログアウトしている場合もあります。
atコマンドからの出力は、電子メールで送信されます。これはローカルのUnixメールであり、メールプログラムで設定した外部のPOPまたはIMAPアカウントではありません。ローカル電子メールが設定されていない場合、コマンドからの出力は失われます。ローカルメールが設定されていない場合、このガイドが役立つ場合があります。
端末と対話するatコマンドが必要な場合は、明示的なリダイレクトを使用する必要があります。例えば:
echo "echo hello >$TTY" | at now + 1 min
このスニペットでは、変数TTY
はシェルによって展開されるため、への入力at
はのようなものであることに注意してくださいecho hello >/dev/pts/42
。