这有效:
system("ruby #{File.dirname(__FILE__) + '/Test')}")
但是这个
`ruby #{File.dirname(__FILE__) + '/Test'}`
不运行脚本测试
和这个:
system("ruby #{File.dirname(__FILE__) + '/Test #{arg}'")
不采用 arg 值。
我究竟做错了什么?
这有效:
system("ruby #{File.dirname(__FILE__) + '/Test')}")
但是这个
`ruby #{File.dirname(__FILE__) + '/Test'}`
不运行脚本测试
和这个:
system("ruby #{File.dirname(__FILE__) + '/Test #{arg}'")
不采用 arg 值。
我究竟做错了什么?
第二个不起作用,因为有一个不平衡的尾随双引号 ( "
) 和右括号 ( )
),这可能会引发错误,但您没有看到它,因为反引号忽略了 STDERR:
`ruby #{File.dirname(__FILE__) + '/Test'")}`
第三个不起作用,因为您试图将变量插入到用单引号括起来的固定字符串中,该字符串也缺少终止符}
:
system("ruby #{File.dirname(__FILE__) + '/Test #{arg}'")
如果您没有在字符串插值中嵌入字符串计算,您会看到这一点:
cmd_file = File.dirname(__FILE__) + '/Test #{arg}'
system("ruby #{ cmd_file }")
修复引用并使用内在File.join
的正确性:
cmd_file = File.join(File.dirname(__FILE__), "Test #{arg}")
system("ruby #{ cmd_file }")