Bash scripting tutorial: Creating a basic Bash script | lynda.com
สารบัญ:
- ผู้ประกอบการเปรียบเทียบ
- ตรวจสอบว่าสตริงมีสตริงย่อยหรือไม่
- ตรวจสอบว่าสตริงว่างเปล่า
- การเปรียบเทียบสตริงกับ Case Operator
- การเปรียบเทียบพจนานุกรม
- ข้อสรุป
เมื่อเขียนสคริปต์ Bash คุณมักจะต้องเปรียบเทียบสองสตริงเพื่อตรวจสอบว่ามีค่าเท่ากันหรือไม่ สองสตริงมีค่าเท่ากันเมื่อมีความยาวเท่ากันและมีลำดับอักขระเหมือนกัน
บทช่วยสอนนี้อธิบายวิธีเปรียบเทียบสตริงใน Bash
ผู้ประกอบการเปรียบเทียบ
ตัวดำเนินการเปรียบเทียบคือตัวดำเนินการที่เปรียบเทียบค่าและส่งคืนจริงหรือเท็จ เมื่อเปรียบเทียบสตริงใน Bash คุณสามารถใช้โอเปอเรเตอร์ต่อไปนี้:
-
string1 = string2
และstring1 == string2
- ตัวดำเนินการความเท่าเทียมจะคืนค่าจริงถ้าตัวถูกดำเนินการเท่ากัน- ใช้ตัวดำเนินการ
=
ด้วยการtest
; then echo "Strings are equal." else echo "Strings are not equal." fi
เมื่อรันสคริปต์มันจะพิมพ์ผลลัพธ์ต่อไปนี้
Strings are equal.
นี่คือสคริปต์อื่นที่รับอินพุตจากผู้ใช้และเปรียบเทียบสตริงที่กำหนด ในตัวอย่างนี้เราจะใช้
]; then echo "Strings are equal." else echo "Strings are not equal." fi
]; then echo "Strings are equal." else echo "Strings are not equal." fi
รันสคริปต์และป้อนสตริงเมื่อได้รับพร้อมต์:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.
คุณสามารถใช้ตรรกะและ
&&
และหรือ||
เพื่อเปรียบเทียบสตริง:] && echo "Equal" || echo "Not equal"
ตรวจสอบว่าสตริงมีสตริงย่อยหรือไม่
มีหลายวิธีในการตรวจสอบว่าสตริงมีสตริงย่อยหรือไม่
วิธีการหนึ่งคือใช้ล้อมรอบสตริงย่อยด้วยสัญลักษณ์ดอกจัน
*
ซึ่งหมายถึงจับคู่อักขระทั้งหมด#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
สคริปต์จะดังต่อไปนี้:
It's there.
ตัวเลือกอื่นคือใช้ตัวดำเนินการ regex
=~
ดังที่แสดงด้านล่าง:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
ระยะเวลาตามด้วยเครื่องหมายดอกจัน
.*
ตรงกับศูนย์หรือมากกว่าเกิดขึ้นอักขระใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่ตรวจสอบว่าสตริงว่างเปล่า
บ่อยครั้งที่คุณจะต้องตรวจสอบว่าตัวแปรเป็นสตริงว่างหรือไม่ คุณสามารถทำได้โดยใช้ตัวดำเนินการ
-n
และ-z
#!/bin/bash VAR='' if]; then echo "String is empty." fi
String is empty.
#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi
การเปรียบเทียบสตริงกับ Case Operator
แทนที่จะใช้ตัวดำเนินการทดสอบคุณสามารถใช้คำสั่ง case เพื่อเปรียบเทียบสตริง:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac
การเปรียบเทียบพจนานุกรม
การเปรียบเทียบคำศัพท์เป็นการดำเนินการที่สองสตริงถูกเปรียบเทียบตามตัวอักษรโดยการเปรียบเทียบอักขระในสตริงตามลำดับจากซ้ายไปขวา การเปรียบเทียบแบบนี้ไม่ค่อยได้ใช้
สคริปต์ต่อไปนี้เปรียบเทียบสองสตริงตามพจนานุกรม:
#!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fi
สคริปต์จะแสดงผลลัพธ์ต่อไปนี้:
Ubuntu is lexicographically greater than Linuxize.
ข้อสรุป
การเปรียบเทียบสตริงเป็นหนึ่งในการดำเนินงานขั้นพื้นฐานและที่ใช้บ่อยที่สุดในการเขียนสคริปต์ Bash หลังจากอ่านบทช่วยสอนนี้คุณควรมีความเข้าใจวิธีเปรียบเทียบสตริงใน Bash เป็นอย่างดี นอกจากนี้คุณยังสามารถตรวจสอบคำแนะนำของเราเกี่ยวกับการต่อสตริง
bash terminal
- ใช้ตัวดำเนินการ
การเรียกใช้ Bash on Ubuntu บน Windows 10

การเปิดใช้งาน Windows Subsystem for Linux จะทำให้คุณสามารถเรียกใช้ Bash บน Ubuntu บน Windows 10, สคริปต์ Bash , เครื่องมือบรรทัดคำสั่ง Linux, เครื่องมือ Linux แรกก่อน
Bash for loop

มีโครงสร้างพื้นฐาน 3 แบบในการสร้างสคริปต์ Bash สำหรับการวนซ้ำในขณะที่วนซ้ำและจนกว่าจะวนซ้ำ ในบทช่วยสอนนี้เราจะกล่าวถึงพื้นฐานของการวนรอบใน Bash รวมถึงการแบ่งและดำเนินการต่อเพื่อเปลี่ยนการไหลของลูป
Bash: ต่อท้ายไฟล์

ใน Linux มีหลายวิธีในการต่อท้ายข้อความในไฟล์ บทความนี้จะอธิบายบางส่วนของพวกเขา