1

これは私の小さなRubyプログラム用のものです。些細なことに思えるかもしれませんが、機能していないようです。

#!/usr/bin/ruby

location = "/home/"

puts %x ("ls " + location)

この構文エラー、予期しない tSTRING_BEG、$end puts %x ("ls " + location) を期待しているというエラーが表示されます。

誰かが私が間違っていることを説明してもらえますか? ありがとうございました

4

3 に答える 3

1

あなたがしたい:

#!/usr/bin/ruby
location = "/home/"

puts %x(ls #{location})

%x と場所の間のスペースに注意してください。引用符は必要ありません。

于 2013-02-13T21:49:30.257 に答える
0

ブラケットを のすぐ隣に配置する必要があります。そうし%xないと、構文的に有効ではありません。

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

%qやその他と同様に、 、 、およびをブラケットとして%x使用できます。[ ]{ }< >

于 2013-02-13T21:47:32.953 に答える
0

%xと の間に空白を追加しています(。以下が機能します。

location = "/home/"

puts %x[ls #{location}]
puts %x(ls #{location})
puts `ls #{location}`
puts exec "ls #{location}"
于 2013-02-13T21:51:02.893 に答える