trueBourne kabuğuna yerleştirilmemiştir. :her zaman öyleydi (daha önce #tanıtılmadan yorum yazmanın yoluydu ).
Bu, ve yazmanın daha kısa olması nedeniyle insanların tercih :edilmesinin en büyük nedeni muhtemelen true.
(POSIX kabukları başka farka dikkat edin bashsadece POSIX modunda): iken truedüzenli yerleşik (hatta yerleşik olmak zorunda değildir) 'dir, :bir olan özel yerleşik. Bunun, birçoğunun bu özel durumda herhangi bir etkisinin olması muhtemel olmayan birkaç sonucu vardır:
:Başarısız bir yeniden yönlendirme de dahil olmak üzere bir komut başarısız olursa, kabuğun çıkmasına neden olur. Uygulamada, yönlendirmeleri iletmediğiniz sürece bu muhtemelen bir fark yaratmaz.:
$ sh -c ': > / ; echo HERE'
sh: 1: cannot create /: Is a directory
$ sh -c 'true > /; echo HERE'
sh: 1: cannot create /: Is a directory
HERE
içinde var=value :, varhiç set kalır valuesonra :değil durumunda, getiriler true:
$ var=1; var=2 : ; echo "$var"
2
$ var=1; var=2 true; echo "$var"
1
Ayrıca unutmayınız || truekabuklarında eserlerini rcve cshaileleri değil || :(ama iptal etmek değil set -ede csh).
|| :aynı değil :. Başka türlü ifade veya çalıştırma: (önceki boru hattının başarısız olması durumunda).
set -e
false
Çünkü çıkışına kabuğunu cikartırmı set -eve falsesıfır olmayan (başarısızlık) çıkış durumu vardır. set -eEtki iptal edilirse döner sıfırdan farklı çıkış durumu olarak kullanıldığını komut durumda olduğu gibi:
if false; then ...
while false; do ...
false && : ...
false || : ...
false && :sadece iptal eder set -e. false || :iptal eder set -eve çıkış durumunu ayarlar, 0böylece komutun başarısızlık çıkış kodunu yok saymak istediğimizi söylemek daha salak olur. Çoğu, bunun || truedaha okunaklı olduğunu savunuyordu (niyeti daha net ifade ediyor).
||:( boşluksuz ) da geçerli olduğuna dikkat etmek önemlidir.|| :Veya ile aynı şeyi yapar|| true.