GNU/Linux >> Linux の 問題 >  >> Linux

#の間にスペースは許可されていますか?そして/bin/ bash In Shebang?

シバンでは、#!の間にスペース以上のスペースが許可されています と通訳?

たとえば、#! /bin/bash 。うまくいったようですが、間違っていると言う人もいます。

承認された回答:

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

シバンに関するウィキペディアの記事には、デニス・リッチーがシバンのカーネルサポートを紹介していたときの1980年の電子メールが含まれています(インタプリタディレクティブと呼ばれるより広範なパッケージの一部として) )バージョン8 Unixに(私の強調):

システムが変更され、実行中のファイルが
魔法の文字#!で始まる場合 、行の残りの部分は、実行されたファイルのインタープリターの名前であると
理解されます。 […]

この素晴らしい機会を利用するために、
置く

#! /bin/sh

シェルスクリプトの最初の行の左マージンにあります。 ! 大丈夫です。

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

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


Linux
  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. Pwdと/bin/ pwdの奇妙な違いは?

  3. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  1. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  2. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?

  3. jenkins パイプラインで bash コマンドを実行する

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. /bin の内容を /usr/bin に移動しました。元に戻すことはできますか?

  3. #!/bin/sh vs #!/bin/bash 移植性を最大限に高める