การเขียน Bash Script เป็นหนึ่งในทักษะที่มีประโยชน์อย่างมากสำหรับผู้ที่ทำงานกับระบบ Linux หรือ Unix ในบทความนี้ เราจะมาเรียนรู้พื้นฐานของ Bash Scripting สำหรับผู้เริ่มต้น และสาธิตวิธีการใช้งาน สล็อตเล็ก ๆ ที่จะช่วยให้งานบนระบบปฏิบัติการนี้ง่ายขึ้น
ความเข้าใจพื้นฐาน: Bash คืออะไร?
Bash ย่อมาจาก Bourne Again SHell ซึ่งเป็นตัวบรรจุคำสั่ง (command interpreter) ที่ได้รับความนิยมสูงสุดในโลก Unix/Linux มันมาพร้อมกับคำสั่งหลายพันคำสั่งที่สามารถใช้ในการจัดการกับไฟล์ โฟลเดอร์ และโปรแกรมต่าง ๆ เมื่อคุณพร้อมที่จะบุกเข้าสู่โลกของ Bash Scripting มาดูกันว่ามันจะสามารถเปลี่ยนงานที่ซับซ้อนให้กลายเป็นอัตโนมัติได้อย่างไร
แรกเริ่มการสร้างสคริปต์ใหม่
มาเริ่มต้นด้วยการสร้างไฟล์สคริปต์ใหม่กันก่อน ด้วยคำสั่งนี้:
touch my-script.sh
คุณสามารถแก้ไขไฟล์นี้ได้ด้วยตัวอักษรที่คุณคุ้นเคย เช่น nano หรือ vim เปิดไฟล์ขึ้นมาและเริ่มเขียนสคริปต์ของคุณ ในบรรทัดแรกให้เสมอมี shebang เพื่อบอกว่าคุณกำลังใช้ interpreter ใด:
#!/bin/bash
นี้บอกระบบว่า script ที่คุณเขียนควรถูกประมวลผลด้วย bash สิ่งนี้จะทำให้ทุกคำสั่งหลังจากบรรทัดนี้ ถูกทำงานในโหมด Bash
สร้างคำสั่ง echo ง่ายๆ
คำสั่ง echo ถูกใช้ในการพิมพ์ข้อความลงใน output ของ terminal มาลองใช้กันดูใน bash script:
#!/bin/bash
echo "สวัสดี โลก!"
บันทึกไฟล์แล้วทำให้สามารถรันได้ด้วย:
chmod +x my-script.sh
เพื่อเรียกใช้ script ใช้คำสั่ง:
./my-script.sh
ข้อความ “สวัสดี โลก!” จะปรากฏใน terminal นี่คือวิธีการง่าย ๆ ที่จะทำให้ข้อความใด ๆ ถูกพิมพ์ออกมาทางหน้าจอ
การใช้ตัวแปรใน Bash Script
ตัวแปรใน Bash เสมือนกับ container ที่เก็บค่าข้อมูล คุณสามารถตั้งตัวแปรง่าย ๆ ด้วยรูปแบบนี้:
#!/bin/bash
ชื่อ="ผู้ใช้"
echo "สวัสดี $ชื่อ"
การใช้ $ ตามด้วยชื่อของตัวแปร (เช่น $ชื่อ) เพื่อเรียกใช้ค่าของมันในคำสั่ง echo
การใช้เงื่อนไข (Conditionals)
การตัดสินใจเป็นสิ่งสำคัญในทุกโปรแกรม มาใช้ if-else ใน Bash กัน:
#!/bin/bash
ตัวเลข=5
if [ $ตัวเลข -gt 0 ]; then
echo "$ตัวเลข เป็นบวก"
else
echo "$ตัวเลข เป็นลบ"
fi
ที่นี่ เราใช้เครื่องหมาย -gt (greater than) เพื่อเปรียบเทียบค่าของตัวแปร ‘ตัวเลข’ และสั่งให้ echo คำตอบที่เหมาะสม
ลูปเพื่อรันคำสั่งซ้ำ
Bash Script ให้คุณเขียนลูปเพื่อทวนซ้ำคำสั่ง ลองพิจารณาตัวอย่างนี้:
#!/bin/bash
for i in {1..5}; do
echo "ตัวเลขที่: $i"
done
นี่จะพิมพ์ “ตัวเลขที่: 1” ถึง “ตัวเลขที่: 5” ถ้าคุณต้องการให้คำสั่งนั้นรันซ้ำ เช่นในการคำนวณหรือประมวลผลข้อมูลชุดใหญ่
คอมเมนต์และการจัดการ Error
คอมเมนต์ใน Bash สามารถทำได้ง่าย ๆ โดยใช้สัญลักษณ์ # เพื่อให้คำสั่งในสคริปต์ชัดเจนขึ้น คอมเมนต์เป็นสิ่งสำคัญในการสอนให้เข้าใจถึงขั้นตอนของ script หรือการจัดการ error ใน bash:
#!/bin/bash
# ตรวจสอบไฟล์
if [ -f "myfile.txt" ]; then
echo "ไฟล์มีอยู่"
else
echo "ไม่มีไฟล์พบ"
fi
ถ้ามี error script จะรายงาน “ไม่มีไฟล์พบ”
จัดการไฟล์และโฟลเดอร์
หนึ่งในความสามารถที่สุดยอดของ Script Bash คือการจัดการไฟล์และโฟลเดอร์ ประหยัดเวลาทำงานเฉพาะที่คุณทำบ่อย ๆ ได้ง่าย ๆ ด้วยคำสั่ง cp, mv, rm เป็นต้น
#!/bin/bash
# สร้างไฟล์ใหม่
echo "เชื่อถือได้" > myfile.txt
# คัดลอกไฟล์ไปยังที่ใหม่
cp myfile.txt copy.txt
# ลบไฟล์
rm copy.txt
ใช้คำสั่งเหล่านี้เพื่อจัดการไฟล์แบบ batch หรืออัตโนมัติได้โดยปลายนิ้ว
สร้างฟังก์ชั่นใน Bash
Bash Script ช่วยให้คุณสร้างฟังก์ชั่นที่ใช้ซ้ำได้ ช่วยเพิ่มความเข้าใจและจัดระเบียบงานให้ดีขึ้น เมื่อใดก็ตามที่คุณต้องใช้คำสั่งหรือขั้นตอนที่เหมือนกันในหลายที่ การสร้างฟังก์ชันจะช่วยประหยัดเวลาและทำให้ script ของคุณมีประสิทธิภาพขึ้น
#!/bin/bash
สวัสดี() {
echo "สวัสดีทุกคน"
}
# เรียกใช้งานฟังก์ชั่น
สวัสดี
ในตัวอย่างนี้ ฟังก์ชัน “สวัสดี” หน้าที่คือการพิมพ์ข้อความ ทำให้ script สามารถเรียกใช้งานโค้ดนี้จากหลาย ๆ ส่วนได้โดยง่าย
จัดการ Inpปut และ Output
การเก็บ input จากผู้ใช้หรือไฟล์ และการจัดการ output เป็นสิ่งที่ทำให้ bash scripts ยืดหยุ่นและมีประโยชน์มากขึ้น ลองมาหาวิธีในการอ่าน input และจัดการผลลัพธ์กัน
#!/bin/bash
# อ่านข้อมูลจากผู้ใช้
read -p "กรุณากรอกชื่อของคุณ: " ชื่อ
# พิมพ์ข้อมูลกลับไปยังผู้ใช้
echo "สวัสดี $ชื่อ"
คำสั่ง read จะเก็บข้อมูล input จากผู้ใช้ในตัวแปร และทำให้สามารถประมวลผลได้ต่อไปในสคริปต์
ความปลอดภัยของ Bash Script
แม้จะใช้ Bash Script เพื่อสร้างงานอัตโนมัติต่าง ๆ แต่จำเป็นต้องใช้ด้วยความระมัดระวังเพื่อป้องกันความผิดพลาด การตั้งค่า permission หรือการกรอง input ก่อนจะผ่านเข้าสู่ระบบถือเป็นการเพิ่มความปลอดภัยให้กับสคริปต์
#!/bin/bash
# ตรวจสอบสิทธิ์ระดับผู้ใช้
if [ "$USER" != 'root' ]; then
echo "กรุณารันสคริปต์นี้ในฐานะ root"
exit 1
fi
เช่นนี้ช่วยให้แน่ใจว่าสคริปต์จะไม่รันโดยผู้ใช้ที่ไม่ได้สิทธิ์อันเหมาะสม
ทบทวนและการแก้ไขปัญหา
จำนวนความซับซ้อนของคำสั่งและการจัดการตัวแปรในสคริปต์อาจทำให้เกิดข้อผิดพลาดได้ ควรตรวจสอบ script ของคุณอย่างละเอียดด้วยการใช้คำสั่ง debug ต่อไปนี้:
#!/bin/bash -x
# ถ้าเปิดโหมด debug จะเห็นการประมวลผลเบื้องหลัง
cape cod
การเรียกใช้ script ด้วย -x จะให้ข้อมูล background ของขั้นตอนแต่ละขั้นใน script ช่วยให้คุณสามารถระบุดูการทำงานผิดพลาดและแก้ไขได้อย่างมีประสิทธิภาพ
กระพือให้การเขียนสคริปต์เป็นเรื่องง่ายด้วย Tips & Tricks
การใช้ bash scripts ในระดับสูง ต้องการทั้งประสบการณ์และความรู้บางส่วน ต่อไปนี้คือหลายเทคนิคเล็ก ๆ ที่จะช่วยให้คุณเขียน script อย่างมืออาชีพ:
- ใช้คอมเมนต์ให้มากพอเพื่อทำให้อธิบายถึงการทำงานของ script ได้ชัดเจน
- แบ่งแยก function สำหรับงานที่เฉพาะเจาะจงเพื่อลดความซับซ้อน
- ปรับปรุงความสามารถในการอ่านด้วย code indentation
- ใช้เครื่องมือจัดการ version control เช่น Git เพื่อ track การเปลี่ยนแปลง
สรุปข้อดีของการศึกษา Bash Script
การศึกษา Bash Scripts ไม่เพียงแต่เป็นการเพิ่มทักษะในอาชีพของคุณแต่ยังช่วยพัฒนาศักยภาพของเครื่องมือที่คุณใช้ในงานประจำวัน Bash Scripts ช่วยให้การจัดการข้อมูลและการดูแลระบบเป็นเรื่องที่ง่ายขึ้นอย่างมาก การปรับปรุงทักษะนี้หมายความว่าคุณจะสามารถนำความรู้ไปประยุกต์ใช้งานได้ตลอดเวลา ซึ่งมีความสำคัญอย่างยิ่งในโลกของ DevOps และระบบ automations
เป็นยังไงกันบ้าง? พร้อมที่จะก้าวขึ้นสู่ขั้นต่อไปในการเขียนสคริปต์? ลองอ่านต่อในบทความของเรา “เพิ่มพลังงานสู่ Bash ด้วย Advanced Scripting Techniques” เพื่อเรียนรู้เทคนิคเชิงลึกที่ช่วยให้คุณเป็นผู้เชี่ยวชาญด้านการเขียน Bash Script ได้อย่างมั่นใจ