forlinx@ubuntu:/source/ptu-manager-project/libiec61850$ ./build_libiec_61850_arm64.sh bash: ./build_libiec_61850_arm64.sh: /bin/bash^M: bad interpreter: No such file or directory forlinx@ubuntu:/source/ptu-manager-project/libiec61850$
这个错误是由于脚本文件的换行符格式不兼容导致的,具体是Windows格式的换行符(CRLF)在Linux系统中无法识别。
错误原因
- Windows系统使用
\r\n(CRLF)作为换行符,而Linux系统只识别\n(LF)。 - 当脚本在Windows环境下编辑后传输到Linux系统时,行尾的
\r(显示为^M)会被Linux系统当作文件名的一部分,导致找不到/bin/bash^M这个解释器。
可以使用sed命令手动删除\r字符:
sed -i 's/\r$//' build_libiec_61850_arm64.sh
然后再次运行脚本:
./build_libiec_61850_arm64.sh