อนุญาตให้มีช่องว่างระหว่าง #! และ / bin / bash ใน shebang?


47

ใน Shebang มีช่องว่างหรือมากกว่านั้นระหว่าง#!และกับล่ามหรือไม่

ตัวอย่างเช่น#! /bin/bash. ดูเหมือนว่าจะใช้งานได้ แต่บางคนก็บอกว่ามันไม่ถูกต้อง



ดังนั้นพื้นที่ไม่จำเป็น ? ฉันเคยเห็นอย่างน้อยหนึ่งครั้ง ...
บาคุริ

6
@Bakuriu ที่ไหน? ฉันแทบจะไม่เคยเห็นใครเลย ...
Jens

คำตอบ:


48

ใช่สิ่งนี้ได้รับอนุญาต

บทความ Wikipedia เกี่ยวกับ shebang รวมถึงอีเมลจาก Dennis Ritchie ในปี 1980 เมื่อเขาแนะนำการสนับสนุนเคอร์เนลสำหรับ shebang (ซึ่งเป็นส่วนหนึ่งของแพคเกจที่กว้างขึ้นที่เรียกว่าinterpreter directives ) ในเวอร์ชัน 8 Unix (เหมืองที่เน้น):

ระบบมีการเปลี่ยนแปลงดังนั้นหากไฟล์ที่ถูกดำเนินการเริ่มต้นด้วยตัวอักษรเวทมนต์#!ส่วนที่เหลือของบรรทัดจะถูกเข้าใจว่าเป็นชื่อของล่ามสำหรับไฟล์ที่ดำเนินการ [ ... ]

เพื่อใช้ประโยชน์จากโอกาสที่ยอดเยี่ยมนี้

#! /bin/sh

ที่ขอบด้านซ้ายของบรรทัดแรกของเชลล์สคริปต์ ช่องว่างหลังจากนั้น!ก็โอเค

ดังนั้นช่องว่างหลังจาก shebang อยู่มาระยะหนึ่งแล้วและตัวอย่างของ Dennis Ritchie ก็ใช้มันอยู่

โปรดทราบว่า Unix รุ่นก่อนหน้านี้มีอักขระได้ไม่เกิน 16 ตัวในบรรทัดล่ามนี้ดังนั้นคุณจึงไม่สามารถมีช่องว่างได้ตามอำเภอใจ ข้อ จำกัด นี้ไม่ได้ใช้กับเมล็ดข้าวสมัยใหม่


38

#!ใช่ช่องว่างจะได้รับอนุญาตหลังจากที่ มีแม้กระทั่ง (ผิดพลาด) คิดว่าระบบบางอย่างอาจต้องใช้ แต่มันก็เป็นตัวเลือกเสมอ

สำหรับการอ่านเพิ่มเติมลองที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.