GNU/Linux >> Znalost Linux >  >> Linux

Je povoleno místo mezi #! A /bin/bash v Shebangu?

V shebang je mezi #! povolena mezera nebo více a tlumočník?

Například #! /bin/bash . Zdá se, že to funguje, ale někteří říkali, že to není správné.

Přijatá odpověď:

Ano, je to povoleno.

Článek Wikipedie o shebang obsahuje e-mail z roku 1980 od Dennise Ritchieho, když zaváděl podporu jádra pro shebang (jako součást širšího balíčku nazvaného interpretační směrnice ) do verze 8 Unix (důraz):

Systém byl změněn tak, že pokud spouštěný soubor
začíná magickými znaky #! , zbytek řádku je chápán
jako název interpretu pro spouštěný soubor. […]

Chcete-li využít této skvělé příležitosti,
dejte

#! /bin/sh

na levém okraji prvního řádku vašich skriptů shellu. Po ! prázdná jsou v pořádku.

Prostory po shebangu tedy existují už nějakou dobu a příklad Dennise Ritchieho je skutečně používá.

Všimněte si, že rané verze Unixu měly limit 16 znaků v tomto řádku tlumočníka, takže jste tam nemohli mít libovolné množství mezer. Toto omezení již v moderních jádrech neplatí.


Linux
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Podivný rozdíl mezi Pwd a /bin/pwd?

  3. Proč /bin/sh ukazuje na /bin/dash a ne /bin/bash?

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. Kdy musím použít #!/bin/bash a kdy #!/bin/sh?

  3. Rozdíl mezi /bin a /usr/bin

  1. Rozdíl mezi /bin/false &/sbin/nologin

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Přesunutý obsah /bin do /usr/bin, je možné vrátit zpět?