Oczywiście nie ma takiego pliku ani katalogu. Więc podajesz złą ścieżkę. Kropka nie oznacza „wykonaj”. To tylko część ścieżki. W powłoce zwykle wpisujesz albo pliki do wykonania, albo polecenia (które w rzeczywistości są także plikami) :)
Pithikos
pozbądź się tego okresu początkowego i spróbuj ponownie. Alternatywnie ~ / scripts / someScript również będzie działać. pamiętaj również o `` qoutes i programach wykonawczych ($ man exec)
j0h
Odpowiedzi:
61
Wiodąca kropka w poleceniu oznacza „względem bieżącego katalogu”. Usuń go, a odniesie się do „pliku someScriptw katalogu /home/user/scripts:
/home/user/scripts/someScript
Jeśli pojawi się komunikat „Odmowa zezwolenia”, to dlatego, że nie masz wystarczających uprawnień, aby uzyskać dostęp do pliku w katalogu innych użytkowników lub dlatego, że plik nie jest wykonywalny. Aby był wykonywalny, uruchom:
Jeśli twój skrypt musi uzyskać dostęp do zasobów w tym samym folderze, z którego jest uruchamiany, i masz go jako ścieżki względne, wówczas twój skrypt się zepsuje.
Zawsze dodaję a cd $(dirname $0)do nagłówka skryptu, więc folder zawierający skrypt będzie folderem głównym.
Jeśli chcesz, aby chmod 755 <nameofscript>skrypt był wykonywalny, aby go uruchomić, wystarczy wpisać ścieżkę do skryptu.
Gdy zobaczysz, ./scriptże jest używany, informuje powłokę, że skrypt znajduje się w tym samym katalogu, w którym go wykonujesz. Aby użyć pełnej ścieżki, wpisz sh /home/user/scripts/someScript.
sh /path/to/fileróżni się od /path/to/file. shprzebiegi, /bin/shktóre są dowiązane symbolicznie /bin/dash.
Lekensteyn
Po prostu wyjaśnienie przykładów, które widzisz w sieci, zwykle widzisz, sh ./somescriptktóre można również wpisać jako `sh / path / to / script / scriptitself '.
Odpowiedzi:
Wiodąca kropka w poleceniu oznacza „względem bieżącego katalogu”. Usuń go, a odniesie się do „pliku
someScript
w katalogu/home/user/scripts
:Jeśli pojawi się komunikat „Odmowa zezwolenia”, to dlatego, że nie masz wystarczających uprawnień, aby uzyskać dostęp do pliku w katalogu innych użytkowników lub dlatego, że plik nie jest wykonywalny. Aby był wykonywalny, uruchom:
źródło
Jeśli twój skrypt musi uzyskać dostęp do zasobów w tym samym folderze, z którego jest uruchamiany, i masz go jako ścieżki względne, wówczas twój skrypt się zepsuje.
Zawsze dodaję a
cd $(dirname $0)
do nagłówka skryptu, więc folder zawierający skrypt będzie folderem głównym.źródło
Usunąć
.
Jeśli chcesz, aby
chmod 755 <nameofscript>
skrypt był wykonywalny, aby go uruchomić, wystarczy wpisać ścieżkę do skryptu.Gdy zobaczysz,
./script
że jest używany, informuje powłokę, że skrypt znajduje się w tym samym katalogu, w którym go wykonujesz. Aby użyć pełnej ścieżki, wpiszsh /home/user/scripts/someScript
.źródło
sh /path/to/file
różni się od/path/to/file
.sh
przebiegi,/bin/sh
które są dowiązane symbolicznie/bin/dash
.sh ./somescript
które można również wpisać jako `sh / path / to / script / scriptitself '.