shebang

เรียน Ruby on Rails กับ อ.ประมุข ขันเงิน อาจารย์บอกว่าเครื่องหมาย #! เรียกว่า shebang

อ่านใน wikipedia เขาบอกว่าเครื่องหมาย #! เรียกว่า shebang, hashbang, pound bang, ฯลฯ ที่เรียกว่า shebang เพราะว่า

  • she เป็นคำย่อจาก # ที่เรียกว่า haSH หรือ SHarp
  • bang มาจากเครื่องหมาย !

shebang ใช้ระบุ interpreter ที่จะใช้รัน script ที่อยู่ในไฟล์ เช่น ถ้าในไฟล์ test.rb มีข้อความว่า

#!/usr/bin/ruby
puts 'hello'

เวลาพิมพ์คำว่า test.rb ใน Unix console ก็จะไปรัน ruby interpreter แล้วก็สั่งให้ ruby แปลคำสั่ง puts ‘hello’ (ซึ่งจะพิมพ์คำว่า hello ออกมา โดยไม่ต้องพิมพ์ว่า ruby test.rb)

แต่ถ้าบรรทัดแรกเป็น

#!/bin/sh

หมายถึงในไฟล์นั้นจะเป็น shell script

ภาษา script ส่วนใหญ่ใช้เครื่องหมาย # เพื่อ comment ดังนั้นถ้าเราพิมพ์คำว่า ruby test.rb ลงใน console (สั่งให้ ruby รัน script test.rb) ruby ก็จะไม่สนใจบรรทัดแรก เพราะมองว่าเป็นคอมเมนท์

Windows ไม่รู้จัก shebang แต่หลังจากที่ติดตั้ง ruby ใน Windows เราสามารถเรียกไฟล์ .rb ใน cmd มารันได้เหมือนกับเรียกไฟล์ .exe ทั้งนี้เนื่องจากโปรแกรมติดตั้ง ruby ได้ไปตั้งค่า file association ไว้แล้ว ว่าถ้าพิมพ์ชื่อไฟล์นามสกุล .rb จะไปเรียก ruby ขึ้นมารัน

การตรวจสอบ file association ให้ไปที่ Windows Explorer, เรียกเมนู Tools > Folder Options, คลิกแท็บ File Types, และ หาคำว่า RB


หนังสือของสนพ.วรรณิก

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s