trueไม่ได้ถูกสร้างขึ้นในเชลล์เป้าหมาย :เสมอคือ (มันเป็นวิธีการป้อนความคิดเห็นก่อนที่จะ#ถูกนำมาใช้)
นั่นและเพราะมันสั้นชนิดอาจเป็นเหตุผลหลักคนชอบมากกว่า:true
หมายเหตุความแตกต่างอื่นใน POSIX shells (สำหรับbash, เฉพาะในโหมด POSIX): ในขณะที่truebuiltin ปกติ (ไม่จำเป็นต้องมี builtin) :เป็นbuiltin พิเศษ ที่มีความหมายบางอย่างซึ่งส่วนใหญ่ไม่น่าจะมีผลกระทบใด ๆ ในกรณีนี้โดยเฉพาะ:
หาก:คำสั่งล้มเหลวรวมถึงเนื่องจากการเปลี่ยนเส้นทางที่ล้มเหลวทำให้เชลล์ออก ในทางปฏิบัตินั้นอาจจะไม่สร้างความแตกต่างเว้นแต่ว่าคุณผ่านการเปลี่ยนเส้นทางไป:
$ sh -c ': > / ; echo HERE'
sh: 1: cannot create /: Is a directory
$ sh -c 'true > /; echo HERE'
sh: 1: cannot create /: Is a directory
HERE
ในvar=value :, varยังคงกำหนดให้valueหลังจากที่:ผลตอบแทนที่ไม่ได้อยู่ในกรณีของtrue:
$ var=1; var=2 : ; echo "$var"
2
$ var=1; var=2 true; echo "$var"
1
นอกจากนี้ทราบว่า|| trueผลงานในเปลือกหอยของrcและcshครอบครัว แต่ไม่|| :( แต่ไม่ได้ที่จะยกเลิกset -eในcsh)
|| ::ไม่ได้เป็นเช่นเดียวกับ มันหมายถึงหรือเรียกใช้เป็น:อย่างอื่น (นั่นคือถ้าไปป์ไลน์ก่อนหน้านี้ล้มเหลว)
set -e
false
จะทำให้เชลล์ออกเนื่องจากset -eและfalseมีสถานะการออกที่ไม่ใช่ศูนย์ (ล้มเหลว) เอset -eฟเฟกต์จะถูกยกเลิกหากคำสั่งที่ส่งคืนสถานะการออกที่ไม่ใช่ศูนย์ถูกใช้เป็นเงื่อนไขเช่น:
if false; then ...
while false; do ...
false && : ...
false || : ...
false && :set -eยกเลิกเท่านั้น false || :ยกเลิกset -eและตั้งค่าสถานะการออก0ให้เป็นสำนวนมากกว่าที่จะบอกว่าเราต้องการที่จะเพิกเฉยต่อรหัสทางออกความล้มเหลวของคำสั่ง ส่วนใหญ่จะโต้แย้งว่า|| trueมีความชัดเจนมากขึ้น (บ่งบอกถึงความตั้งใจชัดเจนมากขึ้น)
||:(ไม่มีที่ว่าง) ก็ใช้ได้ใน bash เช่นกัน มันจะเป็นสิ่งเดียวกับหรือ|| :|| true