#間にスペースが許可されていますか?とシバンで/ bin / bash?


48

シバングでは#!、通訳者との間にスペースを入れることができますか?

たとえば、#! /bin/bash。動作しているように見えますが、間違っていると言う人もいます。



それで、スペースは必要ありませんか?私はいつも...少なくとも一つを見てきました
Bakuriu

6
@Bakuriuどこ?私はほとんどき決して 1 ...見られない
イェンス

回答:


48

はい、これは許可されています。

Wikipediaの記事シェバングについては 、彼が(と呼ばれる広いパッケージの一部としてシェバングのためのカーネルのサポートを導入したデニス・リッチー、から1980年のメールが含まディレクティブ通訳バージョン8のUnix(強調鉱山)への):

システムが変更され、実行中のファイルがマジックキャラクター#!で始まる場合、行の残りの部分は実行されたファイルのインタープリターの名前であると理解されるようになりました。[…]

この素晴らしい機会を活用するには、

#! /bin/sh

シェルスクリプトの最初の行の左マージン。 空白!は問題ありません。

したがって、シバン後のスペースはかなり前から存在しており、実際、デニスリッチーの例ではそれらが使用されています。

Unixの初期バージョンでは、このインタープリター行に16文字の制限があるため、そこに任意の量の空白を入れることはできませんでした。この制限は、最新のカーネルには適用されなくなりました。


38

はい、空白の後に許可されます#!。一部のシステムではそれが必要になるかもしれないとの(誤解された)考えさえありましたが、それは常にオプションでした。

詳細については、こちらをお試しください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.