0

在将脚本运行到输出文件时,我在 Ruby 中使用如下代码行来写入日志文件,例如:

system("ruby #{file} > #{file}.out")

但是,现在我想创建一个新文件夹,然后期望将输出文件放在这个文件夹下,我尝试了以下方式:

Dir::mkdir(directory_name)
system("ruby #{file} > directory_name/#{file}.out")

但是,我没有观察到文件夹“directory_name”下的输出文件,有人请指导我吗?非常感谢。

4

2 回答 2

0

directory_name一个变量,在这种情况下你应该写#{directory_name}在第二行吗?或者它是目录的名称,在这种情况下你应该在第一行引用它?

于 2012-12-29T17:07:37.233 回答
0

您可能会遇到这样的问题,因为该system命令在其自己的 shell 中运行 - 因此工作目录可能不在您创建的目录的上下文中。

一般来说,如果可以的话,最好不要混合使用 unix 策略。

system("cd #{File.expand_path(directory_name)} && ruby #{file} > #{directory_name}/#{file}.out")
于 2012-12-29T17:20:32.763 回答