Я хочу выполнить приведенный ниже скрипт
rm -rf /home/apps/temp
export DAA_HOME=/home/apps/Tools/3.6/eclipse
export BuildFile=/home/apps/Tools/Automated/BuildFile
alias Studio_Home=$DAA_HOME
rm -f Studio_Home/build.xml
cp $BuildFile/build.xml Studio_Home
cd Studio_Home
ant -f build.xml
И я получаю следующие ошибки:
cp: cannot stat ‘/home/apps/Tools/Automated/BuildFile\r/build.xml’: No such file or directory
: No such file or directoryudio_Home
Может кто-нибудь помочь, пожалуйста?
Linux сказал Вам о Вашей проблеме очень хорошо, просто необходимо читать:
/home/apps/Tools/Automated/BuildFile\r/build.xml: Никакой такой файл или каталог
нет немного \r
, который не должен быть там. Это походит, в Вашем сценарии, \r
, символ был вставлен в конце следующей строки:
export BuildFile=/home/apps/Tools/Automated/BuildFile
Удостоверяются, что Ваш файл сценария сохранен в UTF-8 для UNIX. Строки, заканчивающиеся \r\n
, типичны к системам DOS как Windows. В gedit
, этот параметр может быть установлен в окно Save As .
Как решение для командной строки, вот немного sed
заменяющая строка:
sed "s/\r\n/\n/g" -i ./script.sh
Вы могли также использовать dos2unix
программа:
sudo apt-get install dos2unix
dos2unix ./script.sh
У Вас есть символ возврата каретки в пути:
/home/apps/Tools/Automated/BuildFile\r/build.xml
Это невидимо, вот почему Вы не заметили его. Простое решение только к ре, пишут этот фрагмент вручную снова в Вашем редакторе и сохранили файл.