在bash脚本中执行perl脚本

时间:2013-07-15 23:23:52

标签: perl bash pipe

我继承了一个我最近需要修改的长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脚本似乎没有运行。然而,当我将这两个命令复制并粘贴到终端时,它们都运行良好。

感谢任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:1)

你只需要做

yes | ./myscript.pl

答案 1 :(得分:0)

感谢所有评论。我最终更改了工具和所有输出文件的组和权限。这允许我在不使用“sudo”的情况下运行perl脚本,其他人指出这是不好的做法。