この「at」コマンドが標準出力として印刷されないのはなぜですか?

この「at」コマンドが標準出力として印刷されないのはなぜですか?

私はLinuxにとって比較的初心者です。atを使用せずに後で作業を開始するようにスケジュールできるように使用方法を学びたいsleep前の質問助けを求める。

私の質問は私が作った次の例のbashスクリプトでなぜ「走る」私が知っている限り、stdout(bashコンソールなど)で印刷することはできません。

#!/bin/bash

echo "Started"

at now + 1 minutes <<EOF
echo "Running"
EOF

echo "Finished"

私が見る唯一の出力は、例えば次のとおりです。

Started
warning: commands will be executed using /bin/sh
job 3 at Fri Jul 12 17:31:00 2013
Finished

私の質問に対する答えは警告で見つけることができますか?それでは、/bin/sh標準出力とどう違いますか?

ベストアンサー1

atこれは、ログインしたユーザーセッションのコンテキストではコマンドが実行されないためです。アイデアは、いつでもコマンドを実行するようにスケジュールし、ログアウトすると、システムが指定された時間にコマンドの実行を処理することです。

マニュアルページには次のように具体的at(1)に明示されています(私の強調)。

ユーザーにメールが送信されます。コマンドの標準エラーと標準出力(使用可能な場合)のメールは、/usr/sbin/sendmailコマンドを使用して送信されます。

したがって、ローカルメールプールを確認し、失敗した場合はローカルシステムメールログを確認する必要があります。 /var/spool/mail/$USERは始めるのに最適な場所かもしれません。

atさらに、「開始」と「完了」は外部スクリプトから派生し、それ自体はまったく関係がありません。取り出したりat電話したりすると、本質的に同じ結果が得られます。

おすすめ記事