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

Запустите gnome-do из командной строки и посмотрите, есть ли у вас сообщения об ошибках.

На панели запуска есть комментарии, в которых gnome-do не работает из-за того, что плагин переходит в сообщение об ошибке. 2 примера: «Не удалось найти Skype на D-Bus. Убедитесь, что Skype запущен» и ярлык uTorrent в «.local / share / applications / wine» с неверной кодировкой. Оба пользователя обнаружили эти ошибки, когда gnome-do был запущен из командной строки и начал скайп и удалил неверный файл торрента, сделанный gnome-do снова.

38
задан 2 November 2011 в 20:08

5 ответов

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

/home/user/scripts/someScript

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

chmod +x /home/user/scripts/someScript
38
ответ дан 25 May 2018 в 17:17

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

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

21
ответ дан 25 May 2018 в 17:17

Удалите .

Если вы выполнили исполняемый файл сценария с помощью chmod 755 <nameofscript>, вам нужно всего лишь ввести путь к скрипту.

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

3
ответ дан 25 May 2018 в 17:17
  • 1
    sh /path/to/file отличается от /path/to/file. sh запускает /bin/sh, который символически связан с /bin/dash. – Lekensteyn 2 November 2011 в 20:19
  • 2
    Просто сделав что-то на примерах, которые вы видите в сети, обычно вы видите sh ./somescript, который также можно ввести как «sh / path / to / script / scriptitself». – Bruno Pereira 2 November 2011 в 20:37

Удалите .

Если вы выполнили исполняемый файл сценария с помощью chmod 755 <nameofscript>, вам нужно всего лишь ввести путь к скрипту.

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

4
ответ дан 2 August 2018 в 02:36

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

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

23
ответ дан 15 August 2018 в 21:38

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

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