运行 .sh 文件中的脚本时出现问题

运行 .sh 文件中的脚本时出现问题

我想执行以下脚本

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

有人可以帮忙吗?

答案1

Linux 很好地告诉了你你的问题,你只需要阅读:

/home/apps/Tools/Automated/BuildFile\r/build.xml:没有此文件或目录

有一些\r不应该出现的内容。在您的脚本中,该字符似乎\r被插入到以下行的末尾:

export BuildFile=/home/apps/Tools/Automated/BuildFile

确保脚本文件以 UTF-8 格式保存,适用于 UNIX。以 结尾的行\r\n是 Windows 等 DOS 系统的典型行。在 中gedit,此参数可以在另存为窗户。

Gedit 另存为

作为命令行解决方案,这里有一小sed行替换行:

sed "s/\r\n/\n/g" -i ./script.sh

您还可以使用该dos2unix程序:

sudo apt-get install dos2unix
dos2unix ./script.sh

答案2

路径中有回车符:

/home/apps/Tools/Automated/BuildFile\r/build.xml

它是不可见的,所以你没有注意到它。最简单的解决方案就是在编辑器中重新手动编写此片段并保存文件。

相关内容