数分後にファイルに追加したいと思います。
私は素直にこれを行うことができると思いました。
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 ...