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
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, pokudcd /
nejprve (takže je nalezen bin ). Z vašeho odkazu na Wikipedii " následuje mezera! jsou v pořádku "
#! /bin/bash
pro první řádek