Spouštění souboru bash s chybou bin / bash: špatný interpret: Žádný takový soubor nebo adresář

Jsem v bash velmi nový a zkusím napsat první skript s názvem hello_world na cestě /Users/me/Study/Linux s obsahem napsaným vim:

#! bin/bash echo Hello World 

K chybě však dojde při spuštění:

-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory 

Přečetl jsem si mnoho otázek k tomuto problému, ale stále se cítím úplně ztracen. 🙁 Budu velmi vděčný za vaši pomoc.

Komentáře

  • vyzkoušet #! /bin/bash pro první řádek
  • @TedWrigley Thx, to funguje; ale proč?
  • Shebang (#!) má cestu k spustitelnému souboru a v Unixu / linuxu musí cesty začínat lomítko.

Odpověď

První řádek vašeho bash skriptu musí vypadat takto.

#!/bin/bash 

Říká se tomu „shebang line“, protože první dva znaky #! jsou shebang . Řádek shebang říká počítači, který spustitelný program by měl být použit k interpretaci zbytku skriptu. V tomto případě píšete bash skript, ale stejně snadno můžete psát i skript pro python nebo awk a musíte systému sdělit, který tlumočník má použít, podle toho, v jakém jazyce je skript napsán.

Důvod, proč vaše linka shebang #! bin/bash nefunguje, b protože jste k tlumočníkovi neposkytli platnou cestu (obvykle absolutní cesta ). Pokud vynecháte počáteční lomítko /, shell vyhledá bin v aktuálním pracovním adresáři, ale nenajde ho.

Protože se teprve začínáš učit bash, doporučuji přečíst si knihu. To vám ušetří nutnost klást příliš mnoho otázek. Naučit se bash Shell, 3. vydání od Camerona Newhama je docela dobré.

Komentáře

  • Upozorňujeme, že mezera za #! není důležitá – #!/bin/bash a #! /bin/bash obě pracovat a #!bin/bash nebo #! bin/bash fungovat pouze tehdy, pokud cd / nejprve (takže je nalezen bin ). Z vašeho odkazu na Wikipedii " následuje mezera! jsou v pořádku "

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *