我继承了一个我最近需要修改的长bash脚本。 bash脚本每天作为cronjob运行。我对bash脚本很不错,但我对Perl知之甚少。
我必须用调用perl脚本来替换所有“rm”命令,这些脚本执行类似的操作(出于安全目的)。这个脚本不是我写的,所以没有-f标志来跳过确认提示。因此,为了自动执行此脚本,我将“是”写入脚本。
以下是我依次删除两个目录的示例:
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脚本似乎没有运行。然而,当我将这两个命令复制并粘贴到终端时,它们都运行良好。
感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
你只需要做
yes | ./myscript.pl
答案 1 :(得分:0)
感谢所有评论。我最终更改了工具和所有输出文件的组和权限。这允许我在不使用“sudo”的情况下运行perl脚本,其他人指出这是不好的做法。