服务器上的一些脚本迁移到其他服务上发生的小问题
问题:执行一个在win10系统编写好的shell脚本,放到Linux上执行报错如下:
bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
原因:window系统写的脚本,文档格式与linux不一致,这里应该不是编码上的问题(下图是我用notepad编辑的)
验证:
cat -A xxx.sh
在linux查看到的
在window查看到的
这里需要转换一下Unix格式即可
解决方法:
1、window系统通过编辑工具,我用的是notepad自带的如图1右下角“转为Unix”
2、Linux系统通过命令替换掉^M字符(所以应该是不同系统的换行符号不一样导致的吧 且都是在换行的位置出现)
sed -i "s/\r//" xxx.sh
其他小问题顺便记录一下Permission denied 权限不足
[root@centos mnt]# ./xxx.sh
bash: ./xxx.sh: Permission denied
解决方法是赋权我这里没有其他权限要考虑直接给最大
chmod 777 xxx.sh