ค้นหาความยาวของสตริง

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.