سؤال

الرجاء المساعدة، أنا عالق هنا ---

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}\"")

و، القط تتوقع اسم ملف، وليس بعض النص إلى إلحاق test_file، لذلك، فإن هذا العمل كما أعتقد أنك المقصود:

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

إذا كنت تريد أن تفعل هذا في روبي النقي اسمحوا لي أن أعرف وسأعطيك مثالا على ذلك.

نصائح أخرى

وكتابة إلى ملف يسمى "testfile":

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

والكتابة إلى ملف مباشرة تم بالفعل من قبل JesperE تغطيتها. الكتابة إلى عملية (في هذه الحالة عملية "القط") استخدام popen.

IO.popen("cat > foo", "w") do
    |f|
    f.write("line1\nline2\n")
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top