0

此脚本在第一次运行时失败,但在第二次使用相同的 output_dir 参数运行时成功。

$output_dir是用户传入的参数,例如“/home/user/mydir”。

失败线:

open(StepOne, ">$output_dir/Step_One_Create_Resources.sh");

操作系统是 Ubuntu 12.04

这似乎是一个权限问题,但我以 root 身份运行脚本。

4

2 回答 2

1

是的,也许当您第一次调用 open(StepOne, ">$output_dir/Step_One_Create_Resources.sh") 时,$output_dir 并不存在。所以,我强烈建议您等到目录创建完成。

do{
}while(!(-e $output_dir));
open(StepOne, ">$output_dir/Step_One_Create_Resources.sh") or die $!;

这将确保您在实际创建 output_dir 之后打开 output_dir!

于 2013-10-30T08:19:08.377 回答
0

我发现是什么导致了这个问题。当一个不存在的目录作为输出目录传入时,脚本将创建该目录,但无法在该位置打开文件。当输出目录已经存在时,脚本运行良好。

于 2013-10-30T07:35:37.770 回答