「at」への次の呼び出しがbashスクリプトを実行しないのはなぜですか?

「at」への次の呼び出しがbashスクリプトを実行しないのはなぜですか?

test.sh次の内容で呼び出されるbashスクリプトを作成しました。

#!/#bin/bash

echo "Done!"

私は次のように入力しますbash test.sh | at 1549

myusername@machine:path$ bash test.sh | at 1549
warning: commands will be executed using /bin/sh
job 4 at Fri Sep  3 15:49:00 2021
myusername@machine:path$ date
Fri Sep  3 15:48:22 EDT 2021
myusername@machine:path$ date
Fri Sep  3 15:49:12 EDT 2021

表示スクリプトが実行されないのはなぜですか?以下のように私のシェルはbashだからですか?

myusername@machine:path$ echo $SHELL
/bin/bash

ベストアンサー1

スクリプトをすぐに実行してスケジュールします。その出力実行としてat。言うまでもなく、これは失敗するでしょう。

私の考えであなたが望むのはこれです。

#!/bin/bash
echo "Done!"

というファイルに書き込んだとしますmyscript

実行可能にする:

chmod a+x myscript

その後、15:49に実行キューに追加され、出力がキャプチャされますmyscript.log。出力をキャプチャしないと、ローカルのUNIX / Linuxアカウントに電子メールが送信され、メールサブシステムがまったくインストールされていない場合は破棄されます):

at 1549 <<'X'
./myscript > myscript.log 2>&1
X

おすすめ記事