Я новичок в OSX и не часто использую командную строку. Я пытаюсь использовать сценарий для автоматического развертывания, но когда я выполняю сценарий, он ищет каталог.
Я попытался:
sh myscript.sh '/Users/profiles/Desktop/Development'
sh myscript.sh /Users/profiles/Desktop/Development
sh myscript.sh -/Users/profiles/Desktop/Development
но я продолжаю получать "Нет такого файла или каталога". Как правильно это сделать?
Я знаю, что это основной вопрос, но я не могу найти простого ответа. Все, что я нахожу в Google, намного сложнее ..
ОБНОВЛЕНИЕ: в сценарии он ищет такой путь:
DIR_DEVELOP=$@
if [ -z $DIR_DEVELOP ]; then
echo "Syntax: myscript.sh <destination>"
exit 1
Вы должны включить трассировку в bash:
bash -x myscript.sh '/Users/profiles/Desktop/Development'
Вы увидите сообщение «Нет такого файла или каталога» сразу после строки, в которой возникает ошибка.
Вам не нужно использовать '
на вашем пути. Согласно Расширенное руководство по сценариям на Bash:
$ @
То же, что и $ *, но каждый параметр представляет собой строку в кавычках, то есть параметры передаются в неизменном виде, без интерпретации или расширения. Это означает, среди прочего, что каждый параметр в списке аргументов рассматривается как отдельное слово.
Таким образом, путь, к которому пытается получить доступ ваш скрипт, буквально '/Users/profiles/Desktop/Development'
вместо того /Users/profiles/Desktop/Development