Bash Scripts ให้วิธีสะดวกในการทำงานอัตโนมัติบนบรรทัดคำสั่ง คุณสามารถทำสิ่งต่างๆ ได้เหมือนภาษาโปรแกรมมิ่งอื่นๆ: สร้างตัวแปร, วนลูป, เงื่อนไข If-Else, และเก็บข้อมูลใน Arrays
ฟังก์ชันการทำงานคุ้นเคย แต่ Syntax ของ Bash มีความแตกต่างเล็กน้อย ที่ง่ายทำให้พลาด — บทความนี้จะสอนการประกาศและใช้งาน Arrays ให้ถูกต้อง
วิธีประกาศ Array ใน Bash
ประกาศ Array ง่าย แต่ต้องระวัง Syntax หากมาจากภาษาอื่น โค้ดอาจดูคลื่อมแต่รายละเอียดต่างออกไป
- ตั้งชื่อ Array
- ตามด้วยเครื่องหมาย = โดยไม่มีเว้นวรรค รอบๆ เครื่องหมาย =
- ครอบค่าด้วย วงเล็บปกติ () ไม่ใช่ [] เหมือน JavaScript
- เขียนสตริงในเครื่องหมายคำพูด ไม่ต้องมีคอมม่า คั่นระหว่างค่า
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 เป็นเครื่องมือดีสำหรับเก็บข้อมูลหลายชิ้น การประกาศและใช้งานไม่ยาก แต ต่างจากภาษาอื่น — ให้ใส่ใจรายละเอียดเพื่อไม่ให้ผิดพลาด