คู่มือเริ่มต้นใช้งานกับ BASH - เปรียบเทียบสิ่งต่างๆ

ในส่วนก่อนหน้าของการกวดวิชา BASH เราดูที่ข้อความเงื่อนไข
คำแนะนำนั้นยาวมาก แต่จริงๆแล้วมีเพียงวิธีการควบคุมการไหลของตรรกะเท่านั้น คู่มือนี้แสดงวิธีต่างๆที่คุณสามารถเปรียบเทียบตัวแปรได้
ภาพด้านบนแสดงตัวอย่างแรกในคู่มือในสัปดาห์นี้:
#! / bin / ทุบตีname1 = "แกรี่"name2 = "บ๊อบ"หาก "$ name1" = "$ name2"แล้วก็ echo "ชื่อตรงกัน"อื่น echo "ชื่อไม่ตรงกัน"Fiในสคริปต์ด้านบนฉันได้กำหนดตัวแปรสองตัวที่ชื่อ name1 และ name2 และกำหนดค่า "gary" และ "bob" เนื่องจากตัวแปรมีอยู่ระหว่างเครื่องหมายคำพูดพวกเขาเรียกว่าตัวแปรสตริงซึ่งมีความเกี่ยวข้องมากขึ้นเมื่อการสอนทำขึ้น สคริปต์ทั้งหมดจะเปรียบเทียบค่าของ $ name1 และ $ name2 และหากตรงกับผลลัพธ์สตริง "ชื่อตรงกัน" และหากไม่ได้ส่งออกสตริง "ชื่อไม่ตรงกัน" เครื่องหมายอัญประกาศรอบตัวแปร $ name1 และ $ name2 มีความสำคัญเนื่องจากหากค่าของค่าใด ๆ ยังไม่ได้ตั้งค่าไว้สคริปต์จะยังคงทำงานอยู่ ตัวอย่างเช่นถ้าไม่มีชื่อ $ name1 คุณจะเปรียบเทียบ "" กับ "bob" หากไม่มีเครื่องหมายอัญประกาศคุณจะทิ้ง = "bob" ไว้อย่างชัดเจน นอกจากนี้คุณยังสามารถใช้! = notation เพื่อกำหนดค่าไม่เท่ากับดังนี้: ในตัวอย่างข้างต้นการทดสอบเปรียบเทียบสองสตริงและถามคำถามว่า Gary มาก่อน Bob ในตัวอักษรหรือไม่? เห็นได้ชัดว่าคำตอบคือไม่ สคริปต์แนะนำผู้ให้บริการน้อยกว่า (<) เนื่องจากโอเปอเรเตอร์น้อยกว่าจะใช้สำหรับการเปลี่ยนเส้นทางคุณต้องหนีด้วยเครื่องหมายทับ () เพื่อให้มีค่าเฉลี่ยน้อยกว่าซึ่งเป็นเหตุผลว่าทำไมในสคริปต์ด้านบนจึงเปรียบเทียบ "$ name1" <"$ name2" ตรงกันข้ามน้อยกว่าจะเห็นได้ชัดกว่า แทนที่จะใช้ <use > ตัวอย่างเช่น ถ้าคุณต้องการทดสอบว่าตัวแปรมีค่าคุณสามารถใช้การทดสอบต่อไปนี้ได้หรือไม่: ในสคริปต์ด้านบนฉันได้ทดสอบว่าชื่อ $ name2 ได้รับค่าหรือไม่ถ้าข้อความ "ไม่มี Bob ไม่เคยมี Bob ปรากฏ" ในสไลด์ที่ผ่านมาเราได้กล่าวถึงว่ามีการตั้งค่าตัวแปรหรือไม่ บางครั้งอาจมีการตั้งค่าตัวแปร แต่อาจไม่มีค่าจริง ตัวอย่างเช่น หากต้องการทดสอบว่าตัวแปรมีค่าหรือไม่ (เช่นมีความยาวเป็นศูนย์) ให้ใช้ -z ดังนี้: ในสคริปต์ข้างต้นฉันได้ตั้ง $ name1 เป็นสตริงความยาวเป็นศูนย์และเปรียบเทียบแล้วโดยใช้ -z ถ้าชื่อ $ name1 มีความยาวเป็นศูนย์ข้อความ "gary ออกไปตอนเย็น" จะปรากฏขึ้น ดังนั้นการเปรียบเทียบทั้งหมดได้รับสำหรับสตริง สิ่งที่เกี่ยวกับการเปรียบเทียบตัวเลข? สคริปต์ข้างต้นแสดงตัวอย่างของการเปรียบเทียบตัวเลขสองตัว: หากต้องการตั้งค่าตัวแปรให้เป็นตัวเลขให้ตั้งค่าโดยไม่ใช้เครื่องหมายอัญประกาศ จากนั้นคุณสามารถเปรียบเทียบตัวเลขที่มีเครื่องหมายเท่ากับได้ ฉันชอบที่จะใช้ตัวดำเนินการต่อไปนี้เพื่อเปรียบเทียบตัวเลขสอง: ถ้าคุณต้องการเปรียบเทียบว่าจำนวนน้อยกว่าหมายเลขอื่นคุณสามารถใช้ตัวดำเนินการน้อยกว่า (<) เช่นเดียวกับสตริงที่คุณต้องหนีน้อยกว่าผู้ประกอบการด้วยเครื่องหมายทับ ( <) วิธีที่ดีกว่าในการเปรียบเทียบตัวเลขคือการใช้สัญกรณ์ต่อไปนี้แทน: ตัวอย่างเช่น: สุดท้ายสำหรับคู่มือนี้ถ้าคุณต้องการทดสอบว่าตัวเลขสองตัวแตกต่างกันหรือไม่คุณสามารถใช้โอเปอเรเตอร์น้อยกว่าและมากกว่าโอเปอเรเตอร์ร่วมกัน (<>) หรือ -ne ดังนี้: หากคุณพลาดสามส่วนแรกของคู่มือนี้คุณสามารถค้นหาได้โดยคลิกที่ลิงก์ต่อไปนี้: ในส่วนถัดไปของคู่มือฉันจะครอบคลุมเลขคณิต คู่มือเริ่มต้นใช้งานกับ BASH - เปรียบเทียบสตริง

คู่มือเริ่มต้นใช้งานกับ BASH - เปรียบเทียบสตริง

คู่มือเริ่มต้นใช้งานกับ BASH - เปรียบเทียบสตริง

คู่มือเริ่มต้นใช้กับ BASH - เปรียบเทียบตัวเลข

คู่มือเริ่มต้นใช้กับ BASH - เปรียบเทียบตัวเลข

คู่มือเริ่มต้นใช้กับ BASH - เปรียบเทียบตัวเลข

คู่มือเริ่มต้นใช้งานกับตัวดำเนินการเปรียบเทียบ - สรุป




