วิธีเปรียบเทียบสตริงใน Bash

How Compare Strings Bash



เพื่อจุดประสงค์ในการเขียนโปรแกรมที่แตกต่างกัน เราจำเป็นต้องเปรียบเทียบค่าของสองสตริง ฟังก์ชันในตัวใช้ในการเขียนโปรแกรมหลายภาษาเพื่อทดสอบความเท่าเทียมกันของสองสตริง คุณสามารถตรวจสอบความเท่าเทียมกันและความไม่เท่าเทียมกันของสองสตริงใน bash โดยใช้ ถ้า คำแถลง. == ใช้ตรวจสอบความเท่าเทียมกันและ ! = ใช้เพื่อตรวจสอบความไม่เท่าเทียมกันของสตริง คุณสามารถเปรียบเทียบค่าของสองสตริงได้บางส่วนด้วยในทุบตี วิธีที่คุณสามารถเปรียบเทียบค่าสตริงใน bash จะแสดงโดยใช้ตัวอย่างต่างๆ ในบทช่วยสอนนี้

ตัวอย่างที่ 1: การเปรียบเทียบสตริงโดยใช้ตัวดำเนินการ ==

ไม่มีฟังก์ชันการเปรียบเทียบในตัวเพื่อตรวจสอบความเท่าเทียมกันของค่าสตริงสองค่าใน bash เช่นเดียวกับภาษาโปรแกรมมาตรฐานอื่นๆ ในสคริปต์ต่อไปนี้ ตัวแปรสตริงสองตัว strval1 และ strval2 มีการประกาศ อิควิตี้ของตัวแปรสตริงทั้งสองนี้ได้รับการทดสอบโดยใช้ first ถ้า คำสั่งของสคริปต์ คุณค่าของ strval1 จะเปรียบเทียบกับค่าสตริงเพื่อตรวจสอบความเท่าเทียมกันในวินาที ถ้า คำแถลง.







#!/bin/bash

strval1='อูบุนตู'
strval2='หน้าต่าง'

#ตรวจสอบความเท่าเทียมกันของตัวแปรสตริงสองตัว

ถ้า [ $ strval1==$strval2 ];แล้ว
โยนออก 'สตริงมีค่าเท่ากัน'
อื่น
โยนออก 'สตริงไม่เท่ากัน'
เป็น

#ตรวจสอบความเท่าเทียมกันของตัวแปรด้วยค่าสตริง

ถ้า [ $ strval1=='อูบุนตู' ];แล้ว
โยนออก 'ระบบปฏิบัติการลินุกซ์'
อื่น
โยนออก 'ระบบปฏิบัติการวินโดวส์'
เป็น

เอาท์พุท:



การเปรียบเทียบครั้งแรกไม่เท่ากัน การเปรียบเทียบครั้งที่สองมีค่าเท่ากัน







ตัวอย่างที่ 2: การเปรียบเทียบสตริงโดยใช้ตัวดำเนินการ !=

ตรวจสอบความไม่เท่าเทียมกันของตัวแปรสตริงสองตัวในตัวอย่างต่อไปนี้ ที่นี่สองค่าไม่เท่ากัน ดังนั้นหากเงื่อนไขเป็นจริงและ ระบบปฏิบัติการวินโดวส์ จะพิมพ์

#!/bin/bash

strval1='อูบุนตู'
strval2='หน้าต่าง'

#ตรวจสอบความไม่เท่าเทียมกันของตัวแปรด้วยค่าสตริง

ถ้า [ $strval2 !='อูบุนตู' ];แล้ว
โยนออก 'ระบบปฏิบัติการวินโดวส์'
อื่น
โยนออก 'ระบบปฏิบัติการลินุกซ์'
เป็น

เอาท์พุท:



ตัวอย่างที่ 3: การเปรียบเทียบสตริงบางส่วน

คุณสามารถเปรียบเทียบค่าบางส่วนได้โดยใช้อักขระตัวแทนในสคริปต์ทุบตี ในสคริปต์ต่อไปนี้ * ใช้เป็นอักขระตัวแทนสำหรับการจับคู่บางส่วน ตัวแปรสตริง strval มีคำว่า อินเทอร์เน็ต. ดังนั้นครั้งแรก ถ้า ของสคริปต์จะกลับมาจริงและพิมพ์ จับคู่บางส่วน . Bash คำนึงถึงขนาดตัวพิมพ์ สำหรับสิ่งนี้ที่สอง ถ้า ของสคริปต์จะคืนค่าเท็จสำหรับการใช้อินเทอร์เน็ตเป็นสตริงบางส่วนซึ่งไม่เท่ากับการเปรียบเทียบที่ชาญฉลาดด้วยตัวอักษร

#!/bin/bash

strval='ไมโครซอฟต์ อินเทอร์เน็ต เอ็กซ์พลอเรอร์'

ถ้า [[ $ strval==*อินเทอร์เน็ต* ]];
แล้ว
โยนออก 'จับคู่บางส่วน'
อื่น
โยนออก 'ไม่มีการแข่งขัน'
เป็น

ถ้า [[ $ strval==*อินเทอร์เน็ต* ]];
แล้ว
โยนออก 'จับคู่บางส่วน'
อื่น
โยนออก 'ไม่มีการแข่งขัน'
เป็น

เอาท์พุท:

ตัวอย่างที่ 4: เปรียบเทียบสตริงกับค่าอินพุตของผู้ใช้

บางครั้ง เราจำเป็นต้องเปรียบเทียบค่าสตริงที่ผู้ใช้ใช้กับค่าสตริงเฉพาะเพื่อวัตถุประสงค์ในการเขียนโปรแกรม ในตัวอย่างต่อไปนี้ ข้อมูลสตริงจะถูกนำมาจากผู้ใช้เป็นอินพุต และเปรียบเทียบความไม่เท่าเทียมกันของข้อมูลกับค่าคงที่ ถ้าเงื่อนไขเป็นจริงก็จะพิมพ์ ไม่พบบันทึก มิฉะนั้นจะพิมพ์ บันทึกที่พบ .

#!/bin/bash

โยนออก 'ใส่ชื่อของคุณ'
อ่านป้อนข้อมูล

ถ้า [ $อินพุต !='ฟามิด้า' ];
แล้ว
โยนออก 'ไม่พบบันทึก'
อื่น
โยนออก 'บันทึกพบ'
เป็น

เอาท์พุท:

วิดีโอของบทเรียนนี้อยู่ที่นี่:

งานเปรียบเทียบสตริงใน bash จะง่ายขึ้นสำหรับคุณหลังจากเสร็จสิ้นตัวอย่างด้านบนด้วยความเข้าใจที่ชัดเจน