Diğerlerinin de gözlemlediği gibi, "-n" herhangi bir yere yerleştirildiyse, echokomuttan hemen sonra yorumlanır .
Tarihsel olarak, UNIX yardımcı programlarının hepsi böyle idi - sadece komut adından hemen sonra seçenekleri aradılar. POSIX eski yolu doğru olarak belirttiği için (daha fazla bilgi için bkz. Kılavuz 9 ve ayrıca man 3 getoptbir Linux sisteminde) daha esnek stile öncülük eden BSD veya GNU idi (yanlış olabilirim de ). Her neyse, bu günlerde çoğu Linux yardımcı programı yeni stili kullanıyor olsa da, bunun gibi bazı kısıtlamalar var echo.
EchoPOSIX'in ortaya çıktığı anda oyunda temelde birbiriyle çelişen en az iki versiyonun mevcut olması, standartlar açısından karışıklıktır . Bir yandan, ters eğik çizgiden kaçan karakterleri yorumlayan ancak argümanlarını tam anlamıyla ele alan ve hiçbir seçeneği kabul etmeyen SYSV stiliniz var. Öte yandan, bir baş harfini -nözel bir durum olarak ele alan ve kesinlikle her şeyi tam anlamıyla çıkaran BSD stiliniz var . Ve echoçok uygun olduğu için, bir davranışa veya diğerine bağlı olan binlerce kabuk komut dosyanız var:
echo Usage: my_awesome_script '[-a]' '[-b]' '[-c]' '[-n]'
echo -a does a thing.
echo -b does something else.
echo -c makes sure -a works right.
echo -- DON\'T USE -n -- it\'s not finished! --
"Her şeyi tam anlamıyla ele alın" anlamsallığı nedeniyle, echoşeyleri kırmadan yeni bir seçenek eklemek bile imkansızdır . GNU üzerinde esnek seçenekler şeması kullansaydı, cehennem gevşeyecekti.
Bu arada, Bourne kabuğu uygulamaları arasında en iyi uyumluluk için printfdeğilecho , kullanın .
echoÖzellikle esnek seçenekleri neden kullanmadığını açıklamak için GÜNCELLENDİ .
echo -n "bar""bar" verirkenecho "bar" -n, "bar -n" verir