このat
コマンドを使用すると、後で一度スクリプトを実行できます。
at now + 1 minutes -f ~/script.sh
または文字列コマンドを実行してください今その後、今後の結果を返します。
echo "xyz" >> ~/testtest.txt | at now + 1 minute
今(例1)ではなく、将来実行される文字列コマンド(例2)をどのように渡すことができますか?例えば
at now + 1 minutes -SOMEFLAG 'echo "xyz" >> ~/testtest.txt'
ありがとう
答え1
後でコマンドラインで実行するスクリプトを渡すには、こちらの記事を使用してください。
at now + 1 minute <<'END_AT'
echo 'xyz' >> ~/testtest.txt
END_AT
現在、シェルがスクリプトテキスト内の変数などを拡張するのを防ぐために、ここにあるドキュメントが参照されます(<<'END_AT'
代わりに使用して)。<<END_AT
文書はat
標準入力を介して渡されます。
答え2
コマンドを一重引用符で囲んでそのまま渡すat
ことができます。
echo 'echo "xyz" >> ~/testtest.txt' | at now + 1 minutes
または、bashまたは他のサポートされているスクリプトを使用している場合プロセスの交換、あなたはできます:
at now + 1 minutes < <(echo 'echo "xyz" >> ~/testtest.txt')
at
これは、デフォルトでコマンドにファイルを渡すのと同じように、ファイル名を渡します。
ただし、heredocを次のように使用します。クサロナンダのアドバイスプロセスの交換をサポートするためにはシェルに依存しないため、移植性が高くなければなりません。