ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีสร้างและรันสคริปต์ Bash แบบง่ายที่พิมพ์คำว่า "Hello World"
Shebang (#!) คืออะไร
ทุกสคริปต์เชลล์ (shell script) เริ่มต้นด้วยสัญลักษณ์ Shebang #! ซึ่งประกาศอยู่บรรทัดแรกของสคริปต์ และบอกเชลล์ว่าจะใช้ตัวแปล (interpreter) อะไรในการรันสคริปต์
#!/bin/bash
...
สคริปต์ Hello World ใน Bash
ตอนนี้เราจะสร้างสคริปต์ Bash ที่พิมพ์คำว่า "Hello World" ออกมาที่เทอร์มินัล
ก่อนอื่น สร้างไฟล์ชื่อ hello_world.sh โดยใช้เทอร์มินัล:
$ touch hello_world.sh
ไฟล์ของเราถูกสร้างแล้ว
ต่อไป เปิดไฟล์ในโปรแกรมแก้ไขที่ชอบ ผมใช้ nano ดังนั้นคำสั่งจะเป็น:
$ nano hello_world.sh
เมื่อ hello_world.sh เปิดในโปรแกรมแก้ไขแล้ว ให้พิมพ์คำสั่งต่อไปนี้:
#!/bin/bash
echo "Hello World"
การรันสคริปต์เชลล์
ตอนนี้เพื่อพิมพ์ hello world เราต้องรันสคริปต์เชลล์ที่สร้างขึ้น
มีหลายวิธีในการรันสคริปต์เชลล์:
$ sh ./hello_world.sh ## ผิด
$ ./hello_world.sh ## ถูกต้อง
$ bash ./hello_world.sh ## ถูกต้อง
วิธีแรกผิด เพราะคุณสั่งให้เชลล์ใช้ตัวแปลของเชลล์ ไม่ใช่ตัวแปลของ Bash
วิธีที่สองถูกต้อง เพราะเราเพียงรันสคริปต์ ซึ่งจะใช้ตัวแปลที่กำหนดไว้ในไฟล์ บรรทัดแรกคือ #!/bin/bash
วิธีที่สามก็ถูกต้อง เพราะในกรณีนี้ เราระบุให้ใช้ตัวแปล Bash ซึ่งตรงกับที่กำหนดในไฟล์
Permission Denied เมื่อรันสคริปต์เชลล์
ถ้าคุณพยายามรันสคริปต์ด้วย:
$ ./hello_world.sh
-bash: ./hello_world.sh: Permission denied
คุณจะเห็นข้อผิดพลาด Permission denied เพราะสคริปต์ไม่มีสิทธิ์รัน (execute permission)
คุณสามารถให้สิทธิ์รันกับสคริปต์ได้ด้วย:
$ chmod +x ./hello_world.sh
ตอนนี้ ถ้ารันสคริปต์อีกครั้ง คุณจะเห็น "Hello World" พิมพ์ออกมา:
$ ./hello_world.sh
Hello World