Ausführen der Bash-Datei mit dem Fehler bin / bash: fehlerhafter Interpreter: Keine solche Datei oder kein solches Verzeichnis

Ich bin sehr neu in Bash und versuche, das erste Skript mit dem Namen hello_world im Pfad von /Users/me/Study/Linux mit dem von vim geschriebenen Inhalt:

#! bin/bash echo Hello World 

Der Fehler tritt jedoch bei der Ausführung auf:

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

Ich habe viele Fragen zu diesem Problem gelesen, fühle mich aber immer noch völlig verloren. 🙁 Ich bin sehr dankbar für Ihre Hilfe.

Kommentare

  • Versuchen Sie #! /bin/bash für die erste Zeile
  • @TedWrigley Danke, das funktioniert, aber warum?
  • Der Shebang (#!) nimmt einen Pfad zu einer ausführbaren Datei, und unter Unix / Linux müssen die Pfade damit beginnen ein Schrägstrich.

Antwort

Die erste Zeile Ihres Bash-Skripts muss so aussehen.

#!/bin/bash 

Dies wird als „shebang line“ bezeichnet, da die ersten beiden Zeichen #! eine shebang . Die shebang-Zeile teilt dem Computer mit, mit welchem ausführbaren Programm der Rest des Skripts interpretiert werden soll. In diesem Fall schreiben Sie ein Bash-Skript, aber Sie können genauso gut ein schreiben Skript für Python oder awk, und Sie müssen dem System mitteilen, welcher Interpreter basierend auf der Sprache, in der das Skript geschrieben ist, verwendet werden soll.

Der Grund, warum Ihre Shebang-Zeile #! bin/bash funktioniert nicht ist b Weil Sie dem Interpreter keinen gültigen Pfad (normalerweise einen absoluten Pfad ) angegeben haben. Wenn Sie den anfänglichen Schrägstrich / weglassen, sucht die Shell im aktuellen Arbeitsverzeichnis nach bin, findet ihn aber nicht.

Da Sie gerade erst anfangen, Bash zu lernen, schlage ich vor, ein Buch zu lesen. So müssen Sie nicht zu viele Fragen stellen. Das Erlernen der Bash Shell, 3. Ausgabe von Cameron Newham ist ziemlich gut.

Kommentare

  • Beachten Sie, dass das Leerzeichen nach #! unwichtig ist – #!/bin/bash und #! /bin/bash beide work und #!bin/bash oder #! bin/bash funktionieren nur, wenn Sie cd / zuerst (also wird bin gefunden ). Von Ihrem Wikipedia-Link " Leerzeichen nach! sind OK "

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.