http://www.hl10502.com/2017/11/24/centos-sh/
在CentOS7.2上执行CeTune/deploy/prepare-scripts/configure_autossh.sh脚本出错,错误信息如下
1 2 | [root@node210 prepare-scripts]# ./configure_autossh.sh 127.0.0.1 root123 -bash: ./configure_autossh.sh: /usr/bin/expect^M: bad interpreter: No such file or directory |
分析
这是不同系统编码格式引起的。在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决方法
在Linux中转换
首先要确保文件有可执行权限
1 | [root@node210 prepare-scripts]# chmod a+x configure_autossh.sh |
然后修改文件格式
1 | [root@node210 prepare-scripts]# vi configure_autossh.sh |
利用如下命令查看文件格式
1 | :set ff 或 :set fileformat |
可以看到 fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
1 2 | :set ff=unix 或 :set fileformat=unix :wq (存盘退出) |
最后再执行文件
1 | [root@node210 prepare-scripts]# ./configure_autossh.sh 127.0.0.1 root123 |
在windows下转换
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换成UNIX,再上传到Linux。