2

我正在尝试使用 %x ( ) 并使用我之前使用过的变量来确定我想要运行的文件的路径。

基本上我想做这样的事情

location = "/home/myhome/somefolder"
%x ("ls " + location)

有没有办法做到这一点?

4

3 回答 3

5

您的代码有效

%x ("ls " + location)

或者

%x ("ls #{location}")
于 2013-02-13T20:19:43.143 回答
1

您提供的示例工作正常,但您可能应该使用它Shellwords来转义任何变量,例如

require 'shellwords'

location = '~/My folder with spaces in the name'

%x("ls #{Shellwords::escape(location)}")
于 2013-02-13T20:24:55.497 回答
0

我正在使用 ruby​​ 2,但上述方法都不适合我。所以我最终使用了类似的东西

eval "%x(ls #{location})"

于 2016-05-15T03:42:23.003 回答