Also habe ich mein erstes Bash-Skript geschrieben:
#!/bin/bash
echo 'hello world!'
exit
Ich weiß, dass es den richtigen Ort zum Bash hat und ausführbar ist:
$ which bash
/bin/bash
$ chmod +x myscript.sh
Jetzt möchte ich es von der Kommandozeile ausführen, bekomme aber eine Fehlermeldung:
$ myscript.sh
myscript.sh: command not found
Also versuche ich es stattdessen und es funktioniert:
$ bash myscript.sh
hello world!
Muss ich es so immer ausführen? Ich habe das Gefühl, ich habe andere Skripte ausgeführt, ohne dass ich sie vorher ausführen muss bash
. Wie kann ich myscript.sh ausführen, ohne dass ich es voranstellen muss bash
?
Update: Hier finden Sie eine gute Erklärung, warum und wie ein Bash-Skript ausgeführt wird .
quelle
Stellen Sie zusätzlich zu den Ratschlägen von Fernández einen Punkt voran:
Aus Sicherheitsgründen wird das aktuelle Verzeichnis niemals in den Ausführungspfad aufgenommen.
quelle
Es gibt drei Möglichkeiten, ein Bash-Skript auszuführen. Mit Beispiel myscript.sh als das Skript, das Sie ausführen möchten.
Methode 1
Führen Sie das Skript als Unterprozess aus, der Berechtigungsprobleme auslöst, wenn nicht der Eigentümer des Schreibvorgangs. Sie können die Berechtigungen mit chmod ändern.
Methode 2
Führen Sie das Skript als aktueller Benutzer aus. Wenn das Bash-Skript gut geschrieben ist, sollte es keine Fehler enthalten.
Methode 3
ähnlich wie Methode 2, aber eine Abkürzung. Beachten Sie, dass dies auf der Annahme basiert, dass Sie in der aktuellen Sitzung die Bash-Shell verwenden.
hoffe das hilft!:)
quelle