คำสั่งทดสอบสามารถใช้ในบรรทัดคำสั่ง Linux เพื่อเปรียบเทียบองค์ประกอบหนึ่งกับอีกระบบหนึ่ง แต่ใช้กันทั่วไปในสคริปต์เปลือก BASH เป็นส่วนหนึ่งของงบเงื่อนไขที่ควบคุมการทำงานของลอจิกและการไหลของโปรแกรม
ตัวอย่างพื้นฐาน
คุณสามารถลองคำสั่งเหล่านี้ได้ง่ายๆโดยการเปิดหน้าต่างเทอร์มินัล
ทดสอบ 1 -eq 2 && echo "ใช่" || ก้อง "ไม่"
คำสั่งดังกล่าวสามารถแบ่งออกได้ดังนี้: คำสั่ง "echo" จะถูกเรียกใช้ซึ่งจะแสดงเป็น "no." คำสั่ง "echo" จะแสดงคำว่า "no" ถ้าคุณกำลังเปรียบเทียบองค์ประกอบที่แยกวิเคราะห์เป็นตัวเลขคุณสามารถใช้ตัวดำเนินการเปรียบเทียบต่อไปนี้: ตัวอย่าง ทดสอบ 1 -eq 2 && echo "ใช่" || ก้อง "ไม่"
(แสดง "ไม่" ไปที่หน้าจอเพราะ 1 ไม่เท่ากับ 2) ทดสอบ 1 -ge 2 && echo "ใช่" || ก้อง "ไม่"
(แสดง "ไม่" ไปที่หน้าจอเพราะ 1 ไม่มากกว่าหรือเท่ากับ 2) ทดสอบ 1-gt 2 && echo "ใช่" || ก้อง "ไม่"
(แสดง "ไม่" ไปที่หน้าจอเพราะ 1 ไม่เกิน 2) ทดสอบ 1 -le 2 & & echo "ใช่" || ก้อง "ไม่"
(แสดง "ใช่" ไปที่หน้าจอเพราะ 1 น้อยกว่าหรือเท่ากับ 2) ทดสอบ 1 -lt 2 && echo "ใช่" || ก้อง "ไม่"
(แสดง "ใช่" ไปที่หน้าจอเพราะ 1 น้อยกว่าหรือเท่ากับ 2) ทดสอบ 1 -ne 2 & & echo "ใช่" || ก้อง "ไม่"
(แสดง "ใช่" ไปที่หน้าจอเพราะ 1 ไม่เท่ากับ 2) ถ้าคุณกำลังเปรียบเทียบองค์ประกอบที่แยกวิเคราะห์เป็นสตริงคุณสามารถใช้ตัวดำเนินการเปรียบเทียบต่อไปนี้: ตัวอย่าง ทดสอบ "string1" = "string2" && echo "ใช่" || ก้อง "ไม่"
(แสดง "ไม่" ไปที่หน้าจอเพราะ "string1" ไม่เท่ากับ "string2") ทดสอบ "string1"! = "string2" && echo "ใช่" || ก้อง "ไม่"
(แสดง "ใช่" ไปที่หน้าจอเพราะ "string1" ไม่เท่ากับ "string2") ทดสอบ - n "string1" && echo "ใช่" || ก้อง "ไม่"
(แสดง "ใช่" ไปที่หน้าจอเพราะ "string1" มีความยาวของสตริงมากกว่าศูนย์) ทดสอบ -z "string1" && echo "ใช่" || ก้อง "ไม่"
(แสดง "ไม่" ไปยังหน้าจอเพราะ "string1" มีความยาวของสตริงมากกว่าศูนย์) ถ้าคุณเปรียบเทียบไฟล์คุณสามารถใช้ตัวดำเนินการเปรียบเทียบต่อไปนี้: ตัวอย่าง ทดสอบ / เส้นทาง / ไป / file1 -nt / path / to / file2 & & echo "ใช่"
(ถ้าไฟล์ 1 ใหม่กว่าไฟล์ 2 จะปรากฏคำว่า "ใช่") ทดสอบ -e-path / to / file1 & & echo "yes"
(ถ้าไฟล์ 1 มีคำว่า "ใช่" จะปรากฏขึ้น) ทดสอบ -O / path / to / file1 & & echo "ใช่"
(ถ้าคุณเป็นเจ้าของไฟล์ 1 คำว่า "ใช่" จะปรากฏขึ้น ") คำศัพท์ ป่านนี้ทุกอย่างได้รับการเปรียบเทียบสิ่งหนึ่งกับอีก แต่ถ้าคุณต้องการเปรียบเทียบสองเงื่อนไข? ตัวอย่างเช่นถ้าสัตว์มีขา 4 ตัวและไป "หมู่" อาจเป็นวัว เพียงแค่ตรวจสอบขา 4 ไม่ได้รับประกันว่าคุณมีวัว แต่ตรวจสอบเสียงที่ทำอย่างแน่นอนไม่ ในการทดสอบเงื่อนไขทั้งสองนี้ในครั้งเดียวให้ใช้ข้อความต่อไปนี้: test 4-eq 4 -a "moo" = "moo" & & echo "เป็นวัว" || echo "ไม่ใช่วัว"
ส่วนสำคัญที่นี่คือ - ซึ่งย่อมาจาก และ . มีวิธีการที่ดีและใช้กันทั่วไปในการทำแบบทดสอบเดียวกันและมีดังต่อไปนี้: test 4 -eq 4 && test "moo" = "moo" & & echo "เป็นวัว" || echo "ไม่ใช่วัว"
การทดสอบอื่นที่คุณอาจต้องการทำคือการเปรียบเทียบข้อความสองข้อและหากเป็นจริงให้ส่งออกสตริง ตัวอย่างเช่นถ้าคุณต้องการตรวจสอบว่าไฟล์ชื่อ "file1.txt" มีอยู่หรือมีไฟล์ชื่อ "file1.doc" อยู่คุณสามารถใช้คำสั่งต่อไปนี้: test -e file1.txt -o -e file1.doc && echo "มีไฟล์อยู่แล้ว" || echo "file1 ไม่มีอยู่"
ส่วนสำคัญที่นี่คือ -o ซึ่งย่อมาจาก หรือ . มีวิธีการที่ดีและใช้กันทั่วไปในการทำแบบทดสอบเดียวกันและมีดังต่อไปนี้: test -e file1.txt || test -e file1.doc && echo "มีไฟล์อยู่แล้ว" || echo "file1 ไม่มีอยู่" คุณไม่จำเป็นต้องใช้คำทดสอบเพื่อทำการเปรียบเทียบ สิ่งที่คุณต้องทำคือใส่ข้อความในวงเล็บเหลี่ยมดังนี้: -e file1.txt && echo "มีไฟล์อยู่แล้ว" || echo "file1 ไม่มีอยู่"
และ โดยทั่วไปหมายถึงเช่นเดียวกับการทดสอบ ตอนนี้คุณรู้ดีว่าคุณสามารถปรับปรุงเงื่อนไขต่างๆได้ดังนี้ 4-eq 4 && "moo" = "moo" & & echo "เป็นวัว" || echo "ไม่ใช่วัว"-e file1.txt || -e file1.doc && echo "ไฟล์ 1 อยู่" || echo "file1 ไม่มีอยู่" คำสั่งทดสอบมีประโยชน์มากกว่าในสคริปต์เนื่องจากคุณสามารถทดสอบค่าหนึ่งตัวแปรกับอีกอันหนึ่งและควบคุมการไหลของโปรแกรม ในบรรทัดคำสั่งมาตรฐานคุณสามารถใช้เพื่อทดสอบว่าไฟล์มีอยู่หรือไม่
การเปรียบเทียบตัวเลข
การเปรียบเทียบข้อความ
การเปรียบเทียบไฟล์
เปรียบเทียบเงื่อนไขหลายข้อ
การกำจัดคำหลักทดสอบ
สรุป