true
Bourne 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 bash
sadece POSIX modunda): iken true
dü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 :
, var
hiç set kalır value
sonra :
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 || true
kabuklarında eserlerini rc
ve csh
aileleri değil || :
(ama iptal etmek değil set -e
de 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 -e
ve false
sıfır olmayan (başarısızlık) çıkış durumu vardır. set -e
Etki 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 -e
ve çıkış durumunu ayarlar, 0
böylece komutun başarısızlık çıkış kodunu yok saymak istediğimizi söylemek daha salak olur. Çoğu, bunun || true
daha 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
.