这就是我的小红宝石程序。它可能看起来微不足道,但似乎不起作用。
#!/usr/bin/ruby
location = "/home/"
puts %x ("ls " + location)
我收到一条错误消息,提示此语法错误,意外 tSTRING_BEG,期望 $end puts %x ("ls" + location)。
有人可以解释我做错了什么吗?谢谢
这就是我的小红宝石程序。它可能看起来微不足道,但似乎不起作用。
#!/usr/bin/ruby
location = "/home/"
puts %x ("ls " + location)
我收到一条错误消息,提示此语法错误,意外 tSTRING_BEG,期望 $end puts %x ("ls" + location)。
有人可以解释我做错了什么吗?谢谢
你要:
#!/usr/bin/ruby
location = "/home/"
puts %x(ls #{location})
请注意 %x 和位置之间的空格,您不需要引号。
您需要将括号紧邻 the%x
或它在语法上无效:
%x( ... ) # Valid, enclosed with brackets.
%x ( ... ) # Invalid, %x alone makes no sense.
Like%q
和 others,%x
可以使用[ ]
,{ }
和< >
作为括号。
%x
您在和之间添加空格(
。以下将起作用:
location = "/home/"
puts %x[ls #{location}]
puts %x(ls #{location})
puts `ls #{location}`
puts exec "ls #{location}"