这是因为脚本文件的换行符是 Windows 格式(CRLF),而不是 Linux 使用的 Unix 格式(LF)。你可以使用以下方法来修复文件格式问题:
- 使用
dos2unix
工具(如果安装了该工具):dos2unix appInstall.sh
要使用 dos2unix
转换整个文件夹中的所有文件,你可以通过以下步骤来完成:
2. 递归转换文件夹中的所有文件:
使用 find
命令结合 dos2unix
来递归转换文件夹中所有文件。
假设你想转换 /path/to/folder
目录下的所有文件,可以使用以下命令:
find /path/to/folder -type f -exec dos2unix {} \;
find /path/to/folder
:从/path/to/folder
目录开始查找。-type f
:只查找文件(不包括目录)。-exec dos2unix {} \;
:对于找到的每个文件,执行dos2unix
转换,{}
是文件名的占位符,\;
表示命令结束。
-
如果没有安装
dos2unix
,可以使用sed
命令替换 Windows 换行符:sed -i 's/\r$//' appInstall.sh
-
你也可以使用
tr
命令来删除\r
:tr -d '\r' < appInstall.sh > fixed_appInstall.sh mv fixed_appInstall.sh appInstall.sh
这将删除脚本中的不兼容字符,使其能在 Linux 环境中正常执行。