2011-02-24 8 views
0
file = ["file1","file2",...].join(" ") 

`paste "#{file}"` 

こんにちは、私は数日間私を悩ませているこの簡単な問題があります。 Rubyを使用して貼り付けるファイルを選択したいのですが、上記のコードを使用すると、ファイルが見つからないと返します。 1つのファイルに対して実行すると、たとえばpaste file1、それは動作します。誰かがなぜコードが機能していないのか分かりますか?事前ファイルを貼り付けるシステムを呼び出す

+0

「一緒に貼り付ける」とはどういう意味ですか?ファイル名を単一の文字列に結合するか連結しますか? –

+0

こんにちは、私は実際に一緒にファイルを一緒に参加することです、サイドバイサイド。 – user360032

+0

問題は物事を一緒に貼り付けることではありません。あなたはさまざまな方法でそれを行うことができます。問題は、ファイル名がこの場合は 'paste'に渡される方法です(以下の私の答えを見てください)。しかし、このコードは 'ls 'や他の外部コマンドと同じように難しいものです。 – xinit

答えて

1

おかげであなたは#{file}を引用するからです。実行されるものはpaste "file1 file2"です。

おそらくpaste #{file}があり、paste file1 file2になります。あなたの場合、pasteは "file1 file2"(スペースを含むファイル名)と呼ばれるファイルを必要とします。

つまり、2行目の二重引用符を削除します。

+0

AH。どうもありがとうございました。分かりました。私はあなたが ''でテキスト補外を取る必要はないことを知らなかった。 – user360032

+0

ところで、バッククォートは二重引用符と同じように機能します。同じように文字列補間 '#{...} 'を使用するので、余分な二重引用符を追加する必要はありません。 – xinit

+0

よろしくお願いいたします。 – user360032

関連する問題