0

我继承了一个最近需要修改的长 bash 脚本。bash 脚本每天作为 cronjob 运行。我很擅长 bash 脚本,但我对 Perl 知之甚少。

我不得不将所有“rm”命令替换为对执行类似操作的 perl 脚本的调用(出于安全目的)。这个脚本不是我写的,所以没有 -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 脚本似乎没有运行。然而,当我将这两个命令复制并粘贴到终端时,它们都运行良好。

任何帮助表示赞赏。先感谢您。

4

2 回答 2

1

你只是把做

yes | ./myscript.pl

于 2013-07-16T09:53:01.700 回答
0

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

于 2013-07-31T00:32:01.437 回答