ไฟล์สคริปต์ (Script files) ประกอบด้วยคำสั่งที่ถูกรันโดยโปรแกรมหรือ scripting engine เฉพาะ คำสั่งเหล่านี้รัน โดยไม่ต้องคอมไพล์ (compiled) คำแนะนำเขียนในภาษาสคริปติ้งสำหรับ runtime environment มีภาษาสคริปติ้งมากมาย ต่างวัตถุประสงค์และ environment แต่วันนี้เราจะพูดถึง ภาษาสคริปติ้ง Bash ที่ใช้ทำงานบน Linux ไฟล์ที่มีคำสั่งหรือไวยากรณ์ของภาษาสคริปติ้ง Bash เรียกว่า ไฟล์ SH หรือ Shell Script files
ไฟล์ SH ใน Linux คืออะไร?
ไฟล์สคริปต์มักสร้างและบันทึกในภาษา Bash เพราะคำแนะนำในไฟล์เขียนในภาษานั้น และมีนามสกุล .sh คำสั่งใดๆ ที่คุณต้องการรันใน Terminal ปกติ สามารถใส่ในไฟล์สคริปต์เพื่อรันได้ หากมีลำดับคำสั่งที่ต้องรันบ่อย ใส่ในสคริปต์ แล้วแค่เรียกสคริปต์
ไม่จำเป็น ที่ไฟล์สคริปต์ต้องมีนามสกุล .sh Linux ไม่ใช่ Windows เพราะบรรทัดแรกของโค้ด ที่เรียกว่า 『shebang』 ในไฟล์ จะเพียงพอที่จะระบุว่าเป็นไฟล์สคริปต์สำหรับโปรแกรม นี่เป็นข้อตกลงทั่วไปที่ใช้ .sh สำหรับ shell scripts แต่ไม่ใช่ข้อตกลงที่มีประโยชน์มาก การใส่นามสกุลเพื่อให้สังเกตว่าเป็นสคริปต์ ไม่ได้ประโยชน์มาก และจะสูญเสียความยืดหยุ่น
วิธีสร้างไฟล์ SH
เหมือนไฟล์โค้ดทั่วไปที่สร้างใน text editor ธรรมดา ทำได้เหมือนกัน ต้องรู้แค่คำสั่งและไวยากรณ์ของภาษา แต่สิ่งสำคัญที่สุดสำหรับ bash shell script file คือ ต้องขึ้นต้นด้วย shebang ดังนี้:
#!/bin/bash
บรรทัดนี้จะเพิ่มในบรรทัดแรกของโค้ด เพื่อทำให้ bash script รันได้ (executable) สามารถตรวจสอบตำแหน่ง bash interpreter ด้วยคำสั่ง:
which bash
อีกคำสั่งหนึ่งที่ต้องใช้ เพื่อให้ระบบรับรู้สิทธิ์การรัน (executable permission) สำหรับไฟล์นี้ (อาจไม่จำเป็นในบางกรณี):
chmod +x filename
หมายเหตุ: Filename สามารถเป็นชื่อใดๆ ที่คุณตั้งให้ไฟล์
การรันไฟล์ SH ผ่าน Terminal ใน Linux
สามารถรันไฟล์ SH ได้ หากพิมพ์คำสั่งข้อความใน Terminal ไวยากรณ์โค้ดในไฟล์ SH ต้องถูกต้องก่อนรัน เราใช้โค้ดตัวอย่างเพื่อสาธิต วิธีการทำงานของไฟล์สคริปต์ คุณอาจมีโค้ดอื่นที่กำลังทำงานอยู่
- เปิด text editor ใดๆ ที่ชอบบนระบบของคุณ
- พิมพ์โค้ดตัวอย่างต่อไปนี้ และบันทึก ไม่ว่าจะมี .sh หรือไม่:
#!/bin/bash echo Hello, appuals users! # echo ใช้แสดงข้อความ echo What is your name? # โปรแกรมจะขอ input echo what # ผู้ใช้ต้องป้อน input echo Hello, $what! # Input จะแสดงพร้อมข้อความ
หมายเหตุ: อ่านคอมเมนต์เพื่อเข้าใจแต่ละบรรทัดของโค้ดตัวอย่าง - เปิด Terminal ด้วย Ctrl + Alt + T
- มีหลายคำสั่งรัน/ execute ไฟล์สคริปต์:
./appuals
sh appuals
bash appuals
หมายเหตุ: ชื่อไฟล์อะไรก็ได้ ที่นี่ตั้งชื่อว่า 「appuals」 ไม่มีนามสกุล ต้องแน่ใจว่าอยู่ในไดเรกทอรีที่ถูกต้องที่ไฟล์ตั้งอยู่ - หากไฟล์ไม่รัน ให้พิมพ์คำสั่ง chmod เพื่อให้ระบบรับรู้สิทธิ์ executable หากระบบรับรู้แล้ว ข้ามขั้นตอนนี้:
chmod +x appuals