อ่าน 2 นาที
จริงและเท็จ (คำสั่ง)
true และ false เป็น คำสั่ง เชลล์ ที่ออกจากโปรแกรมทันทีโดยมี สถานะการออกเป็น 0 หรือ 1 ตามลำดับ เนื่องจากสคริปต์จะกำหนดสถานะการออกของกระบวนการเป็นค่าของคำสั่งสุดท้ายที่รัน...
จริงและเท็จ (คำสั่ง)
| จริง | |
|---|---|
| ปล่อย | มกราคม พ.ศ. 2522 |
| ระบบปฏิบัติการ | ยูนิซและระบบปฏิบัติการที่คล้ายยูนิซ |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| พิมพ์ | สั่งการ |
trueและfalseเป็นคำสั่งเชลล์ ที่ออกจากโปรแกรมทันทีโดยมีสถานะการออกเป็น 0 หรือ 1 ตามลำดับ เนื่องจากสคริปต์จะกำหนดสถานะการออกของกระบวนการเป็นค่าของคำสั่งสุดท้ายที่รัน คำสั่งเหล่านี้จึงสามารถใช้เพื่อกำหนดสถานะการออกของการรันสคริปต์ได้ เชลล์ Unix ทั้งหมดจะตีความสถานะการออกเป็นศูนย์ว่าสำเร็จ และค่าที่ไม่ใช่ศูนย์ (โดยปกติ) ว่าล้มเหลว ดังนั้น จึงกำหนดให้ เป็นสำเร็จ และกำหนดให้ เป็นล้มเหลว[หมายเหตุ 1 ]truefalse
คำสั่งเหล่านี้มีให้ใช้งานในระบบ ปฏิบัติการที่คล้ายกับ Unix
ใช้
คำสั่งเหล่านี้มักใช้ในคำสั่งเงื่อนไขและลูปของสคริปต์เชลล์ตัวอย่างเช่น สคริปต์ต่อไปนี้จะทำงานซ้ำ ๆecho helloจนกว่าจะถูกขัดจังหวะ:
ในขณะที่เป็นจริงให้แสดงข้อความ "สวัสดี" เสร็จแล้วคำสั่งเหล่านี้สามารถใช้เพื่อละเว้นความสำเร็จหรือความล้มเหลวของลำดับคำสั่งอื่นๆ ได้ ดังตัวอย่างต่อไปนี้:
สร้าง… และเท็จการตั้ง ค่า login shellของผู้ใช้เป็นfalseในไฟล์ /etc/passwdจะเป็นการปิดกั้นการเข้าถึง interactive shell ของผู้ใช้ แต่บัญชีของผู้ใช้อาจยังคงใช้งานได้สำหรับบริการอื่นๆ เช่นFTP (อย่างไรก็ตาม/sbin/nologinหากมี อาจเหมาะสมกว่าสำหรับจุดประสงค์นี้ เนื่องจากจะแสดงข้อความแจ้งเตือนก่อนที่จะยุติเซสชัน)
โปรแกรมเหล่านี้ไม่รับอาร์กิวเมนต์จากบรรทัดคำสั่ง ยกเว้น เวอร์ชัน GNUที่รับอาร์กิวเมนต์ทั่วไป--helpและ--versionตัวเลือกต่างๆ
คำสั่งว่าง
บางครั้ง คำ สั่ง trueจะถูกแทนที่ด้วยคำสั่ง null ที่คล้ายกันมาก[ 1 ]ซึ่งเขียนเป็นเครื่องหมายโคลอนเดี่ยว ( :) คำสั่ง null ถูกสร้างขึ้นในเชลล์และอาจมีประสิทธิภาพมากกว่าหากtrueเป็นโปรแกรมภายนอก ( โดยปกติ trueเป็นฟังก์ชันในตัวของเชลล์) เราสามารถเขียนตัวอย่างข้างต้นใหม่โดยใช้:แทนtrue:
ในขณะที่ : ทำการแสดงข้อความสวัสดี เสร็จสิ้นคำสั่ง null อาจรับพารามิเตอร์ซึ่งจะถูกละเว้น นอกจากนี้ยังใช้เป็น คำสั่งดัมมี่ ที่ไม่มีการดำเนินการใดๆสำหรับผลข้างเคียง เช่น การกำหนดค่าเริ่มต้นให้กับตัวแปรเชลล์ผ่าน${parameter:=word}รูปแบบการขยายพารามิเตอร์[ 2 ]ตัวอย่างเช่น จากbashbugซึ่งเป็นสคริปต์รายงานข้อบกพร่องสำหรับBash :
: ${ TMPDIR :=/tmp } : ${ EDITOR = $DEFEDITOR } : ${ USER = ${ LOGNAME - ` whoami ` }}สไมลี่ว่างเปล่า
สามารถ ใช้ trueหรือ:แทน ได้ดังนั้นจึงมี "สไมลี่ว่าง" 3 แบบ: cat/dev/null
:>- สร้างไฟล์ใหม่ หรือล้างไฟล์หากมีอยู่แล้ว:>>- สร้างไฟล์หากยังไม่มีอยู่ ซึ่งtouchจะไม่เปลี่ยนแปลงเวลาประทับของไฟล์ที่มีอยู่แล้ว:|- สามารถใช้แทนได้< /dev/null
การใช้งานลักษณะนี้คล้ายคลึงกับการใช้งานมาตรฐานของ IEFBR14
ดูเพิ่มเติม
- IEFBR14 – โปรแกรม "ไม่ทำอะไรเลย" บนเมนเฟรมของ IBM
- รายการคำสั่ง POSIX
- ตรรกศาสตร์สองค่า – ตรรกศาสตร์แบบคลาสสิกที่มีสองค่า คือ จริงหรือเท็จ
หมายเหตุ
- ^ค่าเหล่านี้แตกต่างจากค่าความจริงของตรรกะแบบคลาสสิกและภาษาโปรแกรมทั่วไปส่วนใหญ่ ได้แก่จริง (1 หรือ T)และเท็จ (0 หรือ ⊥)โปรดทราบว่าคำสั่งในตัว
trueจะกำหนดสถานะการออก ในขณะที่โปรแกรมtrueจะส่งคืนค่าเดิมโดยมีผลเช่นเดียวกัน
ลิงก์ภายนอก
- : ส่งคืนค่าจริง – เอกสารอ้างอิงเชลล์และยูทิลิตี้, ข้อกำหนด UNIX เดียว , เวอร์ชัน 5 จากThe Open Group
- : ส่งคืนค่าเท็จ – เอกสารอ้างอิงเชลล์และยูทิลิตี้, ข้อกำหนดยูนิกซ์ฉบับเดียว , เวอร์ชัน 5 จากThe Open Group
หน้าคู่มือ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ จริงและเท็จ (คำสั่ง)
true และ false เป็น คำสั่ง เชลล์ ที่ออกจากโปรแกรมทันทีโดยมี สถานะการออกเป็น 0 หรือ 1 ตามลำดับ เนื่องจากสคริปต์จะกำหนดสถานะการออกของกระบวนการเป็นค่าของคำสั่งสุดท้ายที่รัน...
ใช้
คำสั่งเหล่านี้มักใช้ใน คำสั่งเงื่อนไข และ ลูป ของ สคริปต์เชลล์ ตัวอย่างเช่น สคริปต์ต่อไปนี้จะทำงานซ้ำ ๆ echo hello จนกว่าจะถูกขัดจังหวะ:
คำสั่งว่าง
บางครั้ง คำ สั่ง true จะถูกแทนที่ด้วยคำสั่ง null ที่คล้ายกันมาก [ 1 ] ซึ่งเขียนเป็นเครื่องหมายโคลอนเดี่ยว ( : ) คำสั่ง null ถูก สร้างขึ้นในเชลล์ และอาจมีประสิทธิภาพมากกว่าหาก true เป็นโปรแกรมภายนอก ( โดยปกติ true เป็นฟังก์ชันในตัวของเชลล์)...
สไมลี่ว่างเปล่า
สามารถ ใช้ true หรือ : แทน ได้ดังนั้นจึงมี "สไมลี่ว่าง" 3 แบบ: cat /dev/null