1

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

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
4

3 に答える 3

3

「testfile」というファイルに a を書き込みます。

File.open("testfile", "w") do |io| io.print a done
于 2008-10-25T17:33:58.000 に答える
2

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

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

そして、 cat は、test_fileに追加するテキストではなく、ファイル名を期待しているため、これは意図したとおりに機能します。

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

純粋な Ruby でこれを行いたい場合は、私に知らせてください。例を示します。

于 2008-10-25T17:30:30.017 に答える
0

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

IO.popen("cat > foo", "w") do
    |f|
    f.write("line1\nline2\n")
end
于 2008-10-25T17:55:47.410 に答える