最近変更する必要があった長い 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 つのコマンドをターミナルにコピー アンド ペーストすると、両方とも正常に動作します。
どんな助けでも大歓迎です。前もって感謝します。