Очевидно, нет такого файла или каталога. Таким образом, вы даете неправильный путь. Точка там не означает «выполнить». Это просто часть пути. В оболочке вы обычно вводите либо файлы для выполнения, либо команды (которые на самом деле также являются файлами) :)
Pithikos
избавиться от этого начального периода и попробуйте снова. Кроме того, ~ / scripts / someScript также будет работать. также имейте в виду `` qoutes 'и программы exec ($ man exec)
j0h
Ответы:
62
Начальная точка в вашей команде означает «относительно текущего каталога». Удалите его, и он будет ссылаться на «файл someScriptв каталоге /home/user/scripts:
/home/user/scripts/someScript
Если вы получаете «Отказано в доступе», это либо потому, что у вас недостаточно прав для доступа к файлу в каталоге других пользователей, либо потому, что файл не является исполняемым. Чтобы сделать его исполняемым, запустите:
Если вашему сценарию требуется доступ к ресурсам в той же папке, из которой он запускается, и вы указали его как относительные пути, тогда ваш сценарий прервется.
Я всегда добавляю a cd $(dirname $0)к заголовку моего скрипта, чтобы папка, содержащая скрипт, была корневой.
Если вы делаете сценарий исполняемым с помощью, chmod 755 <nameofscript>чтобы запустить его, вам нужно только ввести путь к сценарию.
Когда вы видите, ./scriptчто он используется, он говорит оболочке, что скрипт находится в том же каталоге, где вы его выполняете. Чтобы использовать полный путь, вы вводите sh /home/user/scripts/someScript.
sh /path/to/fileотличается от /path/to/file. shработает, /bin/shкоторый связан с /bin/dash.
Лекенштейн
Просто sh ./somescriptпоясните примеры, которые вы видите в сети, обычно вы видите, что также может быть напечатано как `sh / path / to / script / scriptitself '.
Ответы:
Начальная точка в вашей команде означает «относительно текущего каталога». Удалите его, и он будет ссылаться на «файл
someScript
в каталоге/home/user/scripts
:Если вы получаете «Отказано в доступе», это либо потому, что у вас недостаточно прав для доступа к файлу в каталоге других пользователей, либо потому, что файл не является исполняемым. Чтобы сделать его исполняемым, запустите:
источник
Если вашему сценарию требуется доступ к ресурсам в той же папке, из которой он запускается, и вы указали его как относительные пути, тогда ваш сценарий прервется.
Я всегда добавляю a
cd $(dirname $0)
к заголовку моего скрипта, чтобы папка, содержащая скрипт, была корневой.источник
Удалить
.
Если вы делаете сценарий исполняемым с помощью,
chmod 755 <nameofscript>
чтобы запустить его, вам нужно только ввести путь к сценарию.Когда вы видите,
./script
что он используется, он говорит оболочке, что скрипт находится в том же каталоге, где вы его выполняете. Чтобы использовать полный путь, вы вводитеsh /home/user/scripts/someScript
.источник
sh /path/to/file
отличается от/path/to/file
.sh
работает,/bin/sh
который связан с/bin/dash
.sh ./somescript
поясните примеры, которые вы видите в сети, обычно вы видите, что также может быть напечатано как `sh / path / to / script / scriptitself '.