Ich habe es versucht
./home/user/scripts/someScript
aber es geht nicht
Datei oder Verzeichnis existiert nicht
irgendwelche Ideen?
Ich habe es versucht
./home/user/scripts/someScript
aber es geht nicht
Datei oder Verzeichnis existiert nicht
irgendwelche Ideen?
Antworten:
Der führende Punkt in Ihrem Befehl bedeutet "relativ zum aktuellen Verzeichnis". Entfernen Sie es und es wird auf die Datei someScript
im Verzeichnis verweisen /home/user/scripts
:
/home/user/scripts/someScript
Wenn Sie die Meldung "Berechtigung verweigert" erhalten, liegt dies entweder daran, dass Sie nicht über ausreichende Berechtigungen verfügen, um auf die Datei im Verzeichnis anderer Benutzer zuzugreifen, oder daran, dass die Datei nicht ausführbar ist. Um es ausführbar zu machen, führen Sie Folgendes aus:
chmod +x /home/user/scripts/someScript
Wenn Ihr Skript auf Ressourcen in demselben Ordner zugreifen muss, in dem es ausgeführt wird, und Sie es als relative Pfade angegeben haben, wird Ihr Skript unterbrochen.
Ich füge cd $(dirname $0)
dem Kopf meines Skripts immer ein hinzu , sodass der Ordner, der das Skript enthält, der Stammordner ist.
Entferne das .
Wenn Sie den Scrip ausführbar machen chmod 755 <nameofscript>
, um ihn auszuführen, müssen Sie nur den Pfad zum Script eingeben.
Wenn Sie sehen, ./script
dass es verwendet wird, teilt es der Shell mit, dass sich das Skript in demselben Verzeichnis befindet, in dem Sie es ausführen. Um den vollständigen Pfad zu verwenden, geben Sie Folgendes ein sh /home/user/scripts/someScript
.
sh /path/to/file
ist anders als /path/to/file
. sh
läuft /bin/sh
was mit symlink ist /bin/dash
.
sh ./somescript
diese auch als "sh / path / to / script / scriptitself" eingegeben werden können.