Я попытался выполнить скрипт с помощью этой команды:
./home/user/scripts/someScript
но это не работает:
No such file or directory
Есть какие-нибудь идеи?
Я попытался выполнить скрипт с помощью этой команды:
./home/user/scripts/someScript
но это не работает:
No such file or directory
Есть какие-нибудь идеи?
Начальная точка в вашей команде означает "относительно текущего каталога". Удалите его, и он будет ссылаться на "файл someScript
в каталоге /home/user/scripts
:
/home/user/scripts/someScript
Если вы получаете сообщение "Отказано в разрешении", это либо потому, что у вас недостаточно разрешений для доступа к файлу в каталоге других пользователей, либо потому, что файл не является исполняемым. Чтобы сделать его исполняемым, запустите:
chmod +x /home/user/scripts/someScript
Если вашему скрипту необходимо получить доступ к ресурсам в той же папке, из которой он запускается, и вы указали его в качестве относительных путей, то ваш скрипт завершит работу.
Я всегда добавляю cd $(dirname $0)
в начало моего скрипта, так что папка, содержащая скрипт, будет корневой папкой.
Удалите .
Если вы сделаете скрипт исполняемым с помощью chmod 755 <nameofscript>
чтобы запустить его, вам нужно только ввести путь к скрипту.
Когда ты увидишь ./script
при использовании он сообщает оболочке, что скрипт находится в том же каталоге, в котором вы его выполняете. Чтобы использовать полный путь, вы вводите sh /home/user/scripts/someScript
.
Я перепробовал много способов, и это хорошо работает со мной:
(cd ~/user/scripts/; ./someScript)
Я получаю некоторую помощь от этот ответ.
Очевидно, что такого файла или каталога не существует. Таким образом, вы указываете неправильный путь. Точка там не означает “выполнить”. Это всего лишь часть пути. В оболочке вы обычно вводите либо файлы для выполнения, либо команды (которые на самом деле также являются файлами)
избавьтесь от этого начального периода и попробуйте еще раз. В качестве альтернативы также будет работать ~/scripts/someScript. также имейте в виду `qoutes" и программы exec ($man exec)