开发远程脚本上传并执行脚本的功能时遇到的问题:
步骤:
1、脚本内容通过sftp上传到远程linux主机根目录下,并生成 test.sh 脚本文件
2、通过ssh执行脚本命令: /test.sh,执行脚本
3、执行没有结果返回
4、登录远程主机发现脚本文件存在,手动执行脚本报错:
[root@192 /]# ./test.sh
-bash: ./test.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
原因: 远程上传的脚本格式是.dos,但是linux执行不了此格式的脚本,需要将脚本格式转换成.unix
解决方法:
方法一 使用dos2unix命令
[root@192 /]# dos2unix /test.sh
dos2unix: converting file tset.sh to Unix format ...
方法二 进入文本编辑,设置文本格式
1、vi /test.sh (编辑脚本)
[root@192 /]# vi /test.sh
2、set ff? ( 查看脚本文件格式)
3、set ff=unix (修改脚本文件格式为unix)
4、set ff? (查看编辑后的文件格式为unix)