これは私の小さなRubyプログラム用のものです。些細なことに思えるかもしれませんが、機能していないようです。
#!/usr/bin/ruby
location = "/home/"
puts %x ("ls " + location)
この構文エラー、予期しない tSTRING_BEG、$end puts %x ("ls " + location) を期待しているというエラーが表示されます。
誰かが私が間違っていることを説明してもらえますか? ありがとうございました
これは私の小さなRubyプログラム用のものです。些細なことに思えるかもしれませんが、機能していないようです。
#!/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 と場所の間のスペースに注意してください。引用符は必要ありません。
ブラケットを のすぐ隣に配置する必要があります。そうし%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}"