0

最近変更する必要があった長い bash スクリプトを継承しました。bash スクリプトは、毎日 cronjob として実行されます。私は bash スクリプトは得意ですが、Perl についてはあまり知りません。

すべての "rm" コマンドを、同様のことを行う perl スクリプトへの呼び出しに置き換える必要がありました (セキュリティ上の理由から)。このスクリプトは私が作成したものではないため、確認プロンプトをスキップする -f フラグはありません。したがって、このスクリプトを自動化するには、スクリプトに「yes」をパイプします。

これは、2 つのディレクトリを順番に削除する例です。

echo REMOVING FILES TO SAVE DISK SPACE
echo "yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir1>"
yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir1>
echo "yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir2>"
yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir2>
echo DONE.

私の出力ファイルには、次のように表示されます。

REMOVING FILES TO SAVE DISK SPACE
yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir1>
yes | sudo nice -n -10 perl <path_to_delete_script.pl> -dir <del_dir2>
DONE.

perl スクリプトが実行されたようには見えません。しかし、これら 2 つのコマンドをターミナルにコピー アンド ペーストすると、両方とも正常に動作します。

どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

1

あなたは単に

yes | ./myscript.pl

于 2013-07-16T09:53:01.700 に答える
0

すべてのコメントをありがとう。ツールとすべての出力ファイルのグループと権限を変更することになりました。これにより、「sudo」を使用せずに perl スクリプトを実行することができましたが、これは悪い習慣であると他の人が指摘しました。

于 2013-07-31T00:32:01.437 に答える