这是我的小型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}"