Red Hat环境下C程序编译脚本报错:export参数非标识符
解决Red Hat Linux下Shell脚本export报错:"is not an identifier"
从错误信息export $'G1ECHO\r'和export: G1ECHO: is not an identifier可以明确,脚本文件包含Windows风格的换行符(CR,即\r)。Linux下的Shell以LF(\n)作为换行标志,当脚本里存在\r时,Shell会把它当成变量名的一部分,导致G1ECHO\r这个非法的变量名无法被export识别。
解决方法
- 直接使用
dos2unix工具转换脚本格式(多数Red Hat系统默认安装):
该命令会将指定脚本的CRLF换行转为LF换行。dos2unix setup build_unix.sh - 如果没有
dos2unix,用sed命令手动移除每行末尾的\r:sed -i 's/\r$//' setup build_unix.sh - 后续编辑脚本时,确保编辑器使用Linux风格的LF换行:
- 用Linux原生编辑器(如
vim、nano)编辑; - 若用Windows编辑器(如VS Code),需在右下角将换行模式切换为
LF。
- 用Linux原生编辑器(如
内容的提问来源于stack exchange,提问作者EngMyWorld
相关产品推荐
相关产品推荐

