Offensichtlich gibt es keine solche Datei oder ein solches Verzeichnis. Also gibst du den falschen Weg. Der Punkt dort bedeutet nicht "Ausführen". Es ist nur ein Teil des Weges. In der Shell gibt man normalerweise entweder Dateien ein, die ausgeführt werden sollen, oder Befehle (die eigentlich auch Dateien sind) :)
Pithikos
Beseitigen Sie diese Startphase und versuchen Sie es erneut. Alternativ kann auch ~ / scripts / someScript verwendet werden. Denken Sie auch an `` qoutes und die exec-Programme ($ man exec)
j0h
Antworten:
61
Der führende Punkt in Ihrem Befehl bedeutet "relativ zum aktuellen Verzeichnis". Entfernen Sie es und es wird auf die Datei someScriptim 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:
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.
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, ./scriptdass 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/fileist anders als /path/to/file. shläuft /bin/shwas mit symlink ist /bin/dash.
Lekensteyn
Machen Sie einfach etwas klarer in den Beispielen, die Sie im Netz sehen. Normalerweise sehen Sie, dass sh ./somescriptdiese auch als "sh / path / to / script / scriptitself" eingegeben werden können.
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
: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:
quelle
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.quelle
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 einsh /home/user/scripts/someScript
.quelle
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.