atを使用して実行したときにbashスクリプトにコマンドライン引数を渡す方法は?

atを使用して実行したときにbashスクリプトにコマンドライン引数を渡す方法は?

私は特定の時間に実行する必要があるbashスクリプトがありatます。しかし、問題は、.bashrcを介してbashスクリプトにコマンドライン引数を渡す方法がわからないことですat。以下のコマンドは、他の解決策を見た後に得られた結果です。

echo "-f job.sh argument" | xargs at now + 2 minutes

しかし、これはうまくいきません。誰でも助けることができますか?

ベストアンサー1

xargs(および)を削除します-fat使用しない場合は、標準入力からコマンドを読みます-f

~からPOSIX仕様at:

ユーティリティーatは、標準入力からコマンドを読み取り、後で実行するために進行中のジョブと一緒に組み合わせる必要があります。

あなたの場合:

echo 'job.sh argument' | at now + 2 minutes

これはjob.sh argument2分以内に行われます。

または、

at now + 2 minutes <<'AT_JOB'
job.sh argument
AT_JOB

at実際にはパラメーターをジョブに渡すことができないため(at -f job.sh argument ...機能しない)、上記の両方のバリアントでパラメーターをジョブの一部として作成する必要があります。

おすすめ記事