"at"遅延コマンドの出力をファイルにパイプ

数分後にファイルに追加したいと思います。

私は素直にこれを行うことができると思いました。

echo "hello world" >> /tmp/foo.txt | at NOW + 1 MINUTE

ただし、これはすぐにファイルに追加されます。

私は試した:

echo "hello world" | at NOW + 1 MINUTE >> /tmp/foo.txt

しかし、これはまったく出力を作成しません。

私は私ができることを知っています:

$ at NOW + 1 MINUTE
warning: commands will be executed using /bin/sh
at> echo "HElllo world" >> /tmp/foo.txt
at>
at> <EOT>
job 11 at Wed Feb 17 17:58:00 2021

しかし、それは「トリック」のように感じます。

区切り文字を使わずに欲しいものをどのように表現しますか?

ベストアンサー1

成功したコマンドのSTDOUTをリダイレクトするatことは望ましくありません。

""を実行する "at"アクションを生成するには、echo "Hello, world"バックスラッシュ(\)を使用して、次の文字に異なる特殊性を持たせます(文字が特殊な場合は特殊でないものとして扱われるか、特殊でない場合)。 、特別に扱われます)。

at行う

echo "Hello, world"

このコマンドをに送信する必要がありますat

echo "echo \"Hello  world\"" | at ...

別のアプローチは、2つの形式の引用を使用することです。

echo 'echo "Hello, world"' | at ...

おすすめ記事