Ruby 尝试使用 %x 打印命令行输出



这是我的小型Ruby程序所拥有的。这可能看起来微不足道,但它似乎不起作用。

#!/usr/bin/ruby
location = "/home/"
puts %x ("ls " + location)

我收到一个错误,说这个语法错误,意外tSTRING_BEG,期望$end放置 %x("ls " + 位置(。

有人可以解释我做错了什么吗?谢谢

你需要:

#!/usr/bin/ruby
location = "/home/"
puts %x(ls #{location})

请注意 %x 和位置之间的空格,您不需要引号。

您需要

将括号紧挨着%x,否则它在语法上无效:

%x( ... )  # Valid, enclosed with brackets.
%x ( ... ) # Invalid, %x alone makes no sense.

%q和其他人一样,%x可以使用[ ]{ }< >作为括号。

您在%x(之间添加空格。以下方法将起作用:

location = "/home/"
puts %x[ls #{location}]
puts %x(ls #{location})
puts `ls #{location}`
puts exec "ls #{location}"

最新更新