«Команда не найдена» при поиске файла с переменными пути - PullRequest
1 голос
/ 08 сентября 2011

Если я запускаю этот скрипт:

#!/bin/bash

PROJECT_PATH="/Users/hudson/workspace/Foo"
XCODE_PROJECT_FOLDER="${PROJECT_PATH}/CODE/APP/FOO_IOS"

echo ${PROJECT_PATH}
echo ${XCODE_PROJECT_FOLDER}

Он отображает:

/ Users / hudson / workspace / Foo

/ Users / hudson / workspace/ Foo / CODE / APP / FOO_IOS

Если я помещу переменные в другой файл, включите его в основной файл сценария и запустите:

test.sh

#!/bin/bash

. "/Users/hudson/workspace/Foo/ota.sh"

echo ${PROJECT_PATH}
echo ${XCODE_PROJECT_FOLDER}

/ Пользователи / Hudson / Рабочая область / Foo / ota.sh

#!/bin/bash

PROJECT_PATH="/Users/hudson/workspace/Foo"
XCODE_PROJECT_FOLDER="${PROJECT_PATH}/CODE/APP/FOO_IOS"

У меня есть такой вывод:

: команда не найдена /Users/hudson/workspace/Foo/ota.sh: строка 2:

/ Users / hudson / workspace / Foo

/ CODE / APP / FOO_IOSkspace /Foo

Есть идеи, откуда возникла проблема?

  • Если я поместил ota.sh в ту же папку, что и test.sh, это хорошо работает
  • Если я не пропущу пустую строку между #! / Bin / bash и включением, я не получу команду: команда не найдена / Foo / ota.sh: сообщение строки 2

Ответы [ 3 ]

2 голосов
/ 08 сентября 2011

Возможно неправильно / смешанные окончания строк Unix / Windows, попробуйте исправить это с помощью dos2unix.

0 голосов
/ 22 февраля 2013

Как и в предыдущем ответе, вероятно, неправильные / смешанные окончания строк Unix / Windows. Если вы используете notepad ++, как упоминал Майк, в notepadd ++ вы можете изменить символ (ы) EOL, выбрав меню «Правка», а затем Преобразование EOL . После прочтения комментария Майка, это то, что исправило ту же самую проблему, о которой упоминал опера, и у меня тоже.

0 голосов
/ 08 сентября 2011

Попробуйте открыть файл в vim, чтобы увидеть, есть ли там какие-либо специальные символы, например, backspace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...