我想执行以下脚本
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
,此参数可以在另存为窗户。
作为命令行解决方案,这里有一小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
它是不可见的,所以你没有注意到它。最简单的解决方案就是在编辑器中重新手动编写此片段并保存文件。