ใน Shebang มีช่องว่างหรือมากกว่านั้นระหว่าง#!
และกับล่ามหรือไม่
ตัวอย่างเช่น#! /bin/bash
. ดูเหมือนว่าจะใช้งานได้ แต่บางคนก็บอกว่ามันไม่ถูกต้อง
ใน Shebang มีช่องว่างหรือมากกว่านั้นระหว่าง#!
และกับล่ามหรือไม่
ตัวอย่างเช่น#! /bin/bash
. ดูเหมือนว่าจะใช้งานได้ แต่บางคนก็บอกว่ามันไม่ถูกต้อง
คำตอบ:
ใช่สิ่งนี้ได้รับอนุญาต
บทความ Wikipedia เกี่ยวกับ shebang รวมถึงอีเมลจาก Dennis Ritchie ในปี 1980 เมื่อเขาแนะนำการสนับสนุนเคอร์เนลสำหรับ shebang (ซึ่งเป็นส่วนหนึ่งของแพคเกจที่กว้างขึ้นที่เรียกว่าinterpreter directives ) ในเวอร์ชัน 8 Unix (เหมืองที่เน้น):
ระบบมีการเปลี่ยนแปลงดังนั้นหากไฟล์ที่ถูกดำเนินการเริ่มต้นด้วยตัวอักษรเวทมนต์
#!
ส่วนที่เหลือของบรรทัดจะถูกเข้าใจว่าเป็นชื่อของล่ามสำหรับไฟล์ที่ดำเนินการ [ ... ]เพื่อใช้ประโยชน์จากโอกาสที่ยอดเยี่ยมนี้
#! /bin/sh
ที่ขอบด้านซ้ายของบรรทัดแรกของเชลล์สคริปต์ ช่องว่างหลังจากนั้น
!
ก็โอเค
ดังนั้นช่องว่างหลังจาก shebang อยู่มาระยะหนึ่งแล้วและตัวอย่างของ Dennis Ritchie ก็ใช้มันอยู่
โปรดทราบว่า Unix รุ่นก่อนหน้านี้มีอักขระได้ไม่เกิน 16 ตัวในบรรทัดล่ามนี้ดังนั้นคุณจึงไม่สามารถมีช่องว่างได้ตามอำเภอใจ ข้อ จำกัด นี้ไม่ได้ใช้กับเมล็ดข้าวสมัยใหม่
#!
ใช่ช่องว่างจะได้รับอนุญาตหลังจากที่ มีแม้กระทั่ง (ผิดพลาด) คิดว่าระบบบางอย่างอาจต้องใช้ แต่มันก็เป็นตัวเลือกเสมอ
สำหรับการอ่านเพิ่มเติมลองที่นี่