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

Bash-Skripte können auch als Root nicht ausgeführt werden?

Obwohl nicht direkt relevant für diesen speziellen Thread; Wenn eine Datei von einem Windows-System stammt, kann am Ende der Zeile ein CR/LF stehen. Dies würde alle Zeilen in der Datei betreffen, einschließlich der anfänglichen Ausführungszeile, und wäre nicht sichtbar, wenn Sie die Datei anzeigen.

$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

Um dies zu sehen, könnten Sie die Datei mit cat -A versehen:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$

Verwenden Sie zum Entfernen dos2unix.


Das kann passieren, wenn Sie das Dateisystem mit der Option "noexec" gemountet haben. Sie sollten es entfernen.


Skript muss ausführbar sein. Verwenden Sie dies:

chmod +x <script-name>

Versuchen Sie es mit

ls -la

um die tatsächlichen Rechte und das Eigentum an der Datei anzuzeigen. Um zu sehen, ob der chmod-Befehl tatsächlich funktioniert hat. Vielleicht möchten Sie den Eigentümer zusammen mit dem Mod der Dateiprüfung ändern:http://www.tuxfiles.org/linuxhelp/fileowner.html


Linux
  1. Gibt es einen Grund, einen Shebang zu haben, der auf /bin/sh statt auf /bin/bash zeigt?

  2. /etc/sudoers kann nicht angezeigt werden:Keine solche Datei oder Verzeichnis?

  3. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

  4. Wechseln Sie das Verzeichnis und führen Sie die Datei in einem Befehl aus

  5. Skriptparameter in Bash

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So verwenden Sie Bash-Dateitestoperatoren in Linux

Bash-Skripting – Bedingte Anweisungen

maven:bash mvn-Berechtigung verweigert

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

unix:///var/run/supervisor.sock keine solche Datei