--foo
Bir 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. \n
Kendinizi 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 echo
olarak ş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