Apakah ruang diizinkan di antara #! dan / bin / bash di shebang?


48

Dalam shebang, apakah ada ruang atau lebih yang diizinkan antara #!dan penerjemah?

Sebagai contoh #! /bin/bash,. Tampaknya berhasil, tetapi beberapa mengatakan bahwa itu tidak benar.



Jadi ruang tidak perlu ? Saya selalu melihat setidaknya satu ...
Bakuriu

6
@ Bakuriu Where? Aku hampir tidak pernah melihatnya ...
Jens

Jawaban:


48

Ya, ini diizinkan.

Artikel Wikipedia tentang shebang termasuk email 1980 dari Dennis Ritchie, ketika ia memperkenalkan dukungan kernel untuk shebang (sebagai bagian dari paket yang lebih luas yang disebut arahan juru bahasa ) ke dalam Versi 8 Unix (penekanan tambang):

Sistem telah diubah sehingga jika file yang dijalankan dimulai dengan karakter ajaib #!, sisa baris dipahami sebagai nama juru bahasa untuk file yang dieksekusi. [...]

Untuk memanfaatkan peluang luar biasa ini, tulis

#! /bin/sh

di margin kiri baris pertama skrip shell Anda. Kosong setelah !itu OK.

Jadi ruang setelah shebang sudah ada cukup lama, dan memang, contoh Dennis Ritchie menggunakannya.

Perhatikan bahwa versi awal Unix memiliki batas 16 karakter pada baris juru bahasa ini, jadi Anda tidak dapat memiliki jumlah spasi kosong di sana. Pembatasan ini tidak lagi berlaku di kernel modern.


38

Ya, kosong diizinkan setelah #!. Bahkan ada (salah) berpikir bahwa beberapa sistem mungkin memerlukannya, tetapi selalu saja opsional.

Untuk bacaan lebih lanjut coba di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.