0

cron からシェル スクリプトを実行し、自動的に応答させたいと考えています。それ、どうやったら出来るの?

crontabにスクリプトを入れようとしました。システムは Linux です。スクリプトの 1 つのコマンドで質問が表示され、回答する必要があります ( Y/N ) 例 : スクリプトを手動で実行すると、スクリプトはコマンドを実行します。このコマンドにより、次の質問が表示されます。削除するつもりですか? [Y/N] システムは応答を待ちます。「Y」と答えて ENTER を押すと、スクリプトが削除を実行します。

このスクリプトを crontab に置くつもりです。コマンドが自動的に応答されることを望みます はい。crontab でどうすればよいですか? どうもありがとう/よろしく

4

3 に答える 3

4

次の 2 つのオプションがあります。

  1. コマンドには、質問を表示しないスイッチが含まれている場合があります。たとえばrm、スイッチ-f(強制) があるため、使用してrm -f $fileも何もプロンプトが表示されません。可能であれば、このオプションを希望します。

  2. この場合のために存在するyesコマンドを使用します。たとえば、プロンプトがあればyes | rm foo自動的に応答します。yrm

于 2012-06-07T19:18:18.883 に答える
3

パイプを使用した汎用 Cron

ほとんどのシェルはyesコマンドにアクセスできます。cron ジョブでスクリプトにパイプできます。

* * * * * yes | myscript.sh

Vixie Cron と標準入力

上記に加えて、vixie-cron を使用している場合は、パーセント記号を使用して標準入力をコマンドに入力することもできます。crontab(5) 言います:

バックスラッシュ (\) でエスケープされていない限り、コマンド内のパーセント記号 (%) は改行文字に変更され、最初の % の後のすべてのデータが標準入力としてコマンドに送信されます。シェルの末尾の「\」のように、1 つのコマンド ラインを複数の行に分割する方法はありません。

次の例では、vixie-cron を使用して、標準入力の文字「y」をスクリプトに渡します。

* * * * * myscript.sh % y
于 2012-06-07T19:15:51.970 に答える