Ich habe ein Skript auf meiner virtuellen Maschine, das ich ausführen möchte, ohne[]$ ./myscript
[studentuser@CentosStudentSvr ~]$ myscript
-bash: iduser: Befehl nicht gefunden
andernfalls tritt ein Fehler auf:
-bash: iduser: command not found
wie kann ich es reparieren?
Danke
Antwort1
Wenn Sie myscript
dann eingeben, sucht Ihre Shell in Ihrem PATH nach dem Befehl mit dem Namen myscript
. Anders als bei Windows befindet sich Ihr aktuelles Verzeichnis standardmäßig nicht in Ihrem Pfad.
Das bedeutet, dass Sie entweder:
- füge es vorerst deinem Pfad hinzu (gemeinschaftlich)
- fügen Sie es bei jedem Start zu Ihrem Pfad hinzu (bearbeiten Sie das Startskript in Ihrem Ordner. Welches, hängt von der verwendeten Shell ab. Oft .profile oder .bashsomething)
- Oder geben Sie den vollständigen Pfad zur Binärdatei an. Beispiel:
./iduser
oder/home/user229525/iduser
.
Wenn sich das aktuelle Verzeichnis ( .
) bereits in Ihrem Pfad befindet, überprüfen Sie Ihr Programm.
- Ist es ausführbar? (ls -l, suche nach dem
x
in rwx) - Wenn es ein Skript ist, beginnt es mit einem Shebang? (ist z. B. die erste Zeile
#!/usr/bin/env bash
?)
Antwort2
Bash sucht in den in der Variable $PATH aufgelisteten Pfaden nach den „Befehlen“. Verschieben Sie das Skript in den /usr/bin
oder einen anderen in $PATH genannten Ordner (oder fügen Sie den Ordner, in dem sich das Skript befindet, zu $PATH hinzu).
Sie können auch einen Alias für die laufende Bash definieren alias myscript="bash /path/to/script/myscript"
. (Bitte überprüfen Sie die Syntax selbst, ich bin mir im Moment nicht sicher.)