Bash:
ค้นหาความยาวของสตริง
วิธีทำ:
สัญลักษณ์ #
ช่วยให้งานเสร็จสิ้นใน bash ใช้มันร่วมกับการขยายพารามิเตอร์ นี่คือวิธีการ:
my_string="Hello, World!"
string_length=${#my_string}
echo $string_length
ตัวอย่างผลลัพธ์:
13
ลงลึก
ในอดีต, คนมักใช้ expr
หรือเครื่องมือภายนอกเช่น wc -m
, แต่คุณสมบัติในตัวของ Bash ได้เปลี่ยนแปลงเกมส์ ไวยากรณ์ ${#var}
เป็นส่วนหนึ่งของการขยายพารามิเตอร์ที่เ introducedใน Bash มันเร็วและมีประสิทธิภาพเพราะไม่ได้สร้าง subshell หรือเรียกโปรแกรมภายนอก
มีทางเลือกอื่นไหม? แน่นอน, คุณมีเลย:
expr length "$my_string"
ให้ผลลัพธ์เดียวกัน, แต่มันค่อนข้างเก่ามากecho -n $my_string | wc -m
ใช้wc
ในการนับ, แต่มันเป็นการทำเกินไปสำหรับงานง่ายๆ
รายละเอียด, รายละเอียด… เมื่อคุณใช้ ${#my_string}
, มันจะให้ความยาวเป็นไบต์โดยค่าเริ่มต้น หากข้อความของคุณอยู่ในด้านยูนิโค้ด, คุณอาจต้องพิจารณาถึงตัวอักษรแบบหลายไบต์ นั่นคือเมื่อสิ่งต่างๆ เริ่มกลายเป็นซับซ้อน
ดูเพิ่มเติม
ดำดิ่งลงไปในหน้าคู่มือด้วย man bash
เพื่อเข้าสู่รายละเอียดของการขยายพารามิเตอร์ สำหรับผู้ที่ต้องการจัดการกับสตริงเกินกว่า ASCII พื้นฐาน, คู่มือ Bash-Scripting ขั้นสูงนำเสนอข้อมูลบางอย่าง: https://www.tldp.org/LDP/abs/html/. และเพื่อความรักในการเรียนรู้, ติดตามที่ https://www.gnu.org/software/bash/manual/ เพื่ออัปเดตล่าสุดเกี่ยวกับ Bash.