質問
助けてください、私はここで立ち往生しています---
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
所属していません StackOverflow