Ich bin auf OSX Snow Leopard.
Hier ist der vollständige Inhalt von grr.sh
:
#!/bin/sh
echo wow
Wenn ich versuche, es vom Terminal aus auszuführen:
$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow
Okay. Meinetwegen. Ich werde es ausführbare Erlaubnis geben, dann versuchen Sie es erneut:
$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found
Hmmm. Vielleicht funktioniert es, wenn ich Bash explizit verwende? Ich werde den Inhalt der Datei ändern in:
#!/bin/bash
echo wow
Und ich bekomme genau die gleichen Ergebnisse. Was hätte ich kaputt machen können?!
Eine letzte Sache! Falls Sie neugierig sind ...
$ which sh
/bin/sh
Befindet sich die Position von grr.sh in der
$PATH
Variablen? Wenn nicht, müssen Sie Folgendes eingeben:Wenn Sie sich im selben Ordner wie grr.sh befinden. Wenn nicht, geben Sie den vollständigen Pfad dazu an.
quelle
Die Berechtigungen für die Datei sind falsch. Versuchen Sie die folgenden Befehle:
quelle
Ja, und was ./grr.sh bedeutet, ist, dass Sie in diesem Verzeichnis den Befehl grr.sh ausführen. Der Single . bedeutet im Arbeitsverzeichnis. Andernfalls geht Ihre Shell davon aus, dass Sie versuchen, einen Befehl in Ihrem $ PATH auszuführen.
quelle