这就是我的小红宝石计划。它可能看似微不足道,但它似乎没有起作用。
#!/usr/bin/ruby
location = "/home/"
puts %x ("ls " + location)
我收到错误,说这个语法错误,意外的tSTRING_BEG,期待$ end 放%x(“ls”+位置)。
有人可以向我解释我做错了什么吗?谢谢
答案 0 :(得分:1)
你想:
#!/usr/bin/ruby
location = "/home/"
puts %x(ls #{location})
请注意%x与位置之间的空格,您不需要引号。
答案 1 :(得分:0)
您需要将括号紧邻%x
放置,否则它在语法上无效:
%x( ... ) # Valid, enclosed with brackets.
%x ( ... ) # Invalid, %x alone makes no sense.
与%q
和其他人一样,%x
可以使用[ ]
,{ }
和< >
作为括号。
答案 2 :(得分:0)
您正在%x
和(
之间添加空格。以下内容适用:
location = "/home/"
puts %x[ls #{location}]
puts %x(ls #{location})
puts `ls #{location}`
puts exec "ls #{location}"