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.

Tim
sumber
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.

alexwlchan
sumber
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

Eric Renouf
sumber