Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

เชี่ยวชาญ Bash Arrays: ประกาศและใช้งาน String Arrays ในสคริปต์

Bash Scripts ให้วิธีสะดวกในการทำงานอัตโนมัติบนบรรทัดคำสั่ง คุณสามารถทำสิ่งต่างๆ ได้เหมือนภาษาโปรแกรมมิ่งอื่นๆ: สร้างตัวแปร, วนลูป, เงื่อนไข If-Else, และเก็บข้อมูลใน Arrays

ฟังก์ชันการทำงานคุ้นเคย แต่ Syntax ของ Bash มีความแตกต่างเล็กน้อย ที่ง่ายทำให้พลาด — บทความนี้จะสอนการประกาศและใช้งาน Arrays ให้ถูกต้อง

วิธีประกาศ Array ใน Bash

ประกาศ Array ง่าย แต่ต้องระวัง Syntax หากมาจากภาษาอื่น โค้ดอาจดูคลื่อมแต่รายละเอียดต่างออกไป

  1. ตั้งชื่อ Array
  2. ตามด้วยเครื่องหมาย = โดยไม่มีเว้นวรรค รอบๆ เครื่องหมาย =
  3. ครอบค่าด้วย วงเล็บปกติ () ไม่ใช่ [] เหมือน JavaScript
  4. เขียนสตริงในเครื่องหมายคำพูด ไม่ต้องมีคอมม่า คั่นระหว่างค่า
myArray=("cat" "dog" "mouse" "frog")

แค่นี้ก็จบ! ง่ายมาก

วิธีเข้าถึง Array ใน Bash

มี 2 วิธีหลักในการวนลูป: วนผ่าน Elements (ค่า) หรือ วนผ่าน Indices (ดัชนี)

1. วนลูปผ่าน Elements

for str in ${myArray[@]}; do
  echo $str
done

การทำงาน: คล้าย forEach ใน JavaScript — สำหรับแต่ละสตริง (str) ใน Array (myArray) ให้พิมพ์สตริงนั้น

ผลลัพธ์:

cat
dog
mouse
frog

⚠ สำคัญ: สัญลักษณ์ @ ใน ${myArray[@]} หมายถึง "ทุก Elements" — หากละ @ จะได้แค่ Element แรกเท่านั้น

2. วนลูปผ่าน Indices

เหมือน For Loop แบบเดิมใน JavaScript — ใช้เมื่อต้องการเข้าถึง Index ของแต่ละ Element

for i in ${!myArray[@]}; do
  echo "element $i is ${myArray[$i]}"
done

ผลลัพธ์:

element 0 is cat
element 1 is dog
element 2 is mouse
element 3 is frog

⚠ สำคัญ: เครื่องหมาย ! นำหน้า myArray หมายถึง "เข้าถึง Indices" ไม่ใช่การ Negative/Not — สับสนง่ายหากมาจากภาษาอื่น

⚠ หมายเหตุเพิ่มเติม: Bash ไม่บังคับ Curly Braces สำหรับตัวแปรทั่วไป แต Arrays ต้องใช้ ${array} เสมอ — ตัวแปรธรรมดาใช้ $i ได้เลย

สรุป

Bash Scripts มีประโยชน์สำหรับ Automation บน CLI และ Arrays เป็นเครื่องมือดีสำหรับเก็บข้อมูลหลายชิ้น การประกาศและใช้งานไม่ยาก แต ต่างจากภาษาอื่น — ให้ใส่ใจรายละเอียดเพื่อไม่ให้ผิดพลาด