gpt4 book ai didi

ruby - 如何使用系统和反引号运行 Unix 命令?

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:12 27 4
gpt4 key购买 nike

这个有效:

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 }")

关于ruby - 如何使用系统和反引号运行 Unix 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com