Impossible de convertir les blocs Ruby en fichiers
Question
Aidez-moi, je suis coincé ici ---
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
La solution
Vous devez citer le paramètre interpolé:
system("cat > test_file << \"#{a}\"")
Et cat attend un nom de fichier, pas du texte à ajouter à test_file, donc cela fonctionnerait comme je le pensais:
system("echo \"#{a}\" >> test_file")
Si vous voulez faire cela en pur rubis, faites-le-moi savoir et je vous donnerai un exemple.
Autres conseils
Écrivez un fichier dans un fichier appelé "testfile":
.File.open("testfile", "w") do |io| io.print a done
L’écriture dans un fichier directement a déjà été couverte par JesperE. Pour écrire dans un processus (dans ce cas, un processus "chat"), utilisez popen.
IO.popen("cat > foo", "w") do
|f|
f.write("line1\nline2\n")
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow