質問

助けてください、私はここで立ち往生しています---

irb> a = "line of text\n  line two\n  line three"
irb> system("cat > test_file << #{a}")
cat: of: No such file or directory
cat: text: No such file or directory
=> false
役に立ちましたか?

解決

補間されたパラメーターを引用する必要があります:

system("cat > test_file << \"#{a}\"")

そして、catはtest_fileに追加するテキストではなくファイル名を期待しているので、これはあなたが意図したとおりに動作するでしょう:

system("echo \"#{a}\" >> test_file")

これを純粋なRubyで行いたい場合はお知らせください。例を挙げます。

他のヒント

aを&quot; testfile&quot;というファイルに書き込みます:

File.open("testfile", "w") do |io| io.print a done

ファイルへの直接書き込みは、すでにJesperEでカバーされています。プロセス(この場合は「cat」プロセス)に書き込むには、popenを使用します。

IO.popen("cat > foo", "w") do
    |f|
    f.write("line1\nline2\n")
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top