GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Skript:schlechter Interpreter

Könnte das Skript Dos Newlines verwenden?

Versuchen Sie, dos2unix darauf auszuführen.


Die erste Zeile, #!/bin/bash , teilt Linux mit, wo der Interpreter zu finden ist. Das Skript sollte auch mit chmod +x script.sh ausführbar sein , was Sie anscheinend getan haben.

Es ist sehr wahrscheinlich, dass Sie diese Datei mit einem Windows-Editor erstellt haben, der einen <cr><lf> platziert am Ende jeder Zeile. Dies ist der Standard unter dos / windows. OS X platziert einen <cr> am Ende jeder Zeile. Unter Unix / Linux ist es jedoch der Standard, einfach einen <lf> zu setzen am Ende der Zeile.

Linux sucht nun nach einer Datei namens /bin/bash<cr> um die Datei zu interpretieren, wobei <cr> ist ein Wagenrücklaufzeichen, das unter Linux ein gültiges Dateizeichen ist. Eine solche Datei existiert nicht. Daher der Fehler.

Lösung: Bearbeiten Sie die Datei mit einem Editor unter Linux und entfernen Sie den zusätzlichen <cr> . Ein Tool, das normalerweise funktioniert, wenn die Datei unter Windows bearbeitet wird, ist dos2unix .


Linux
  1. Kann ein Bash-Skript mit einer Datei verknüpft werden?

  2. Bash-Skript:Prüfen, ob eine Datei eine Textdatei ist?

  3. /usr/bin/perl:schlechter Interpreter:Textdatei beschäftigt

  4. Ausführen des PHP-Skripts (PHP-Funktion) in Linux Bash

  5. Wie überprüfe ich Syslog in Bash unter Linux?

Linux-Sleep-Befehl (Pausieren eines Bash-Skripts)

So verwenden Sie Bash-Dateitestoperatoren in Linux

35 Bash-Skriptbeispiele

Bash:Keine solche Datei oder Verzeichnis?

Bash-Schleife zum Entpacken von passwortgeschützten Dateien

Templating mit Linux in einem Shell-Skript?