--fooBir seçenek olarak kabul edilen komutların çoğu --, kendi başına "seçeneklerin sonu, bağımsız değişkenlerin başlangıcı" işareti olarak kabul eder - böylece şunları yapabilirsiniz:
printf -- "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test
Ancak kesin örneğinize verilecek daha kesin yanıt, printf ile ilgili ilk argümanın bir format belirleyici olması ve biçimlendirme yetenekleri için printf kullanmamanız gerektiğinden işleri zorlaştırmanızdır. Bu, istediğinizi yapmanın daha iyi bir yolu olacaktır:
printf "%s\n" --no-color --format-doc --no-profile >> ~/.rspec-test
Bu, printf'e aldığı her bir argümanı almasını ve yazdırmasını, ardından bir satırsonunu bildirir. \nKendinizi tekrar etmekten daha kolaydır ve --karşılaştığınız sorunlardan kaçınır . Ve %dizelerinizin içerebileceği işaretlerden kaçma ihtiyacını ortadan kaldırır .
Birden çok satırın nasıl yapılacağı ile ilgili echoolarak şunları kullanabilirsiniz:
echo -ne "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test
Veya çok daha taşınabilir:
{ echo --no-color; echo --format-doc; echo --no-profile; } >> ~/.rspec-test
Ya da burada bir doktorla birlikte kediyi kullanmak:
cat >>.rspec-test <<EOF
--no-color
--format-doc
--no-profile
EOF