Как выполнить скрипт в другом каталоге?

Я попробовал это

./ home / user / scripts / someScript

, но это не работает

Нет такой файл или каталог

есть идеи?

51
задан 2 November 2011 в 18:08

4 ответа

Начальная точка в вашей команде означает «относительно текущего каталога». Удалите его, и он будет ссылаться на «файл someScript в каталоге /home/user/scripts:

/home/user/scripts/someScript

Если вы получите« Отказано в доступе », это либо потому, что у вас недостаточно прав для доступа файл в каталоге других пользователей или потому что файл не является исполняемым. Чтобы сделать его исполняемым, выполните:

chmod +x /home/user/scripts/someScript
0
ответ дан 2 November 2011 в 18:08

Если Ваш сценарий должен получить доступ к ресурсам в той же папке, что это выполняется от, и у Вас есть указанный как относительные пути, то Ваш сценарий повредится.

Я всегда добавляю a cd $(dirname $0) к заголовку моего сценария, таким образом, папка, содержащая сценарий, будет корневой папкой.

36
ответ дан 2 November 2011 в 18:08

Удалите .

Если вы запускаете скрипт с помощью chmod 755 <nameofscript>, вам нужно только ввести путь к скрипту.

Когда вы видите, что ./script используется, это говорит оболочке, что скрипт находится в том же каталоге, где вы его выполняете. Чтобы использовать полный путь, вы набираете sh /home/user/scripts/someScript.

0
ответ дан 2 November 2011 в 18:08

Я пробовал много способов, и это хорошо работает со мной:

(cd ~/user/scripts/; ./someScript)

Я получаю некоторая помощь от этого ответа .

3
ответ дан 1 January 2021 в 15:08

Другие вопросы по тегам:

Похожие вопросы: