我正在使用Ruby中的代码行在将脚本运行到输出文件时编写日志文件,如:
system("ruby #{file} > #{file}.out")
但是,现在我想创建一个新文件夹,然后期望将输出文件放在这个文件夹下,我试着用下面的方法:
Dir::mkdir(directory_name)
system("ruby #{file} > directory_name/#{file}.out")
但是,我没有观察文件夹“directory_name”下的outfile,有人请指导我吗?非常感谢。
答案 0 :(得分:0)
directory_name
是变量,在这种情况下你应该在第二行写#{directory_name}
吗?或者它是目录的名称,在这种情况下,您应该在第一行引用它?
答案 1 :(得分:0)
你可能遇到这样的问题,因为system
命令在它自己的shell中运行 - 所以工作目录可能不在你所建立的目录的上下文中。
一般来说,如果可以的话,最好不要混合使用unix策略。
system("cd #{File.expand_path(directory_name)} && ruby #{file} > #{directory_name}/#{file}.out")