--foo
विकल्प के रूप में स्वीकार करने वाली अधिकांश कमांड भी --
अपने आप में "विकल्पों की समाप्ति, तर्कों की शुरुआत" मार्कर के रूप में स्वीकार करती हैं - इसलिए आप ऐसा कर सकते हैं:
printf -- "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test
लेकिन आपके सटीक उदाहरण के लिए अधिक विशिष्ट उत्तर यह है कि प्रिंटफ के लिए पहला तर्क एक प्रारूप विनिर्देशक है, और आप अपनी प्रारूपण क्षमताओं के लिए प्रिंटफ का उपयोग न करके चीजों को आवश्यकता से अधिक कठिन बना रहे हैं। यह एक बेहतर तरीका है कि आप क्या चाहते हैं:
printf "%s\n" --no-color --format-doc --no-profile >> ~/.rspec-test
जो प्रिंटफ को प्रत्येक तर्क को लेने और उसे प्रिंट करने के लिए कहता है, उसके बाद एक नई पंक्ति। \n
अपने आप को दोहराने की तुलना में आसान है , और यह --
आपके सामने आने वाली प्रमुख समस्या से बचा जाता है । और यह किसी भी ऐसे %
संकेत से बचने की आवश्यकता को दूर करता है जिसमें आपके तार शामिल हो सकते हैं।
कैसे कई लाइनों के साथ करने के लिए के रूप में echo
, आप उपयोग कर सकते हैं:
echo -ne "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test
या, और भी बहुत कुछ:
{ echo --no-color; echo --format-doc; echo --no-profile; } >> ~/.rspec-test
या यहाँ-डॉक्टर के साथ बिल्ली का उपयोग करना:
cat >>.rspec-test <<EOF
--no-color
--format-doc
--no-profile
EOF