Können Katze Ruby-Blöcke zu Dateien
Frage
Bitte helfen Sie, ich bin hier fest ---
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
Lösung
Sie müssen die interpoliert Parameter zitieren:
system("cat > test_file << \"#{a}\"")
Und wird Katze einen Dateinamen erwartet, nicht irgendein Text test_file zu anhängen, so, das funktionieren würde, wie ich glaube, Sie gedacht:
system("echo \"#{a}\" >> test_file")
Wenn Sie dies in reinem Ruby tun wollen lassen Sie mich wissen und ich werde Ihnen ein Beispiel geben.
Andere Tipps
schreibt in eine Datei namens "Testdatei":
File.open("testfile", "w") do |io| io.print a done
Schreiben in eine Datei wird direkt schon von JesperE abgedeckt. So schreiben Sie verwenden, um einen Prozess (in diesem Fall eine „Katze“ -Verfahren) popen.
IO.popen("cat > foo", "w") do
|f|
f.write("line1\nline2\n")
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow