最近把Windows上的文件上传到Linux上执行时报错
$'\r': command not found
于是果断加了个 find . -name '*.sh' -exec dos2unix {} \;
但是问题并没有解决,报错的地方似乎不在我的shell脚本里,而且这条语句是个空行,没法直接搜到出错的地方
后来发现我的spec文件里 %prep 部分是空的(语句被注释了),出于强迫症心理,我把 %prep移除了,然后发现除了$'\r': command not found的报错,还有这样一条
mkdir ********\r
看来问题出在spec文件,dos2unix xxx.spec,问题解决
总结,下次执行脚本遇到\r 问题,除了shell文件,还要注意下spec 文件。当然,生产环境是Linux就没这么多屁事了…