问题:最近编写shell脚本,遇到直接执行shell脚本怎么也不成功,但是在控制台输入命令就能执行成功,报错如下图所示:
脚本内容如下:
脚本实现功能很简单,且语法也没问题,但是运行脚本就报错,经过艰苦排查,发现问题在于 filebeat_kill.sh 是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。
我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件:vi filebeat_kill.sh
2.在vi命令模式中输入 :set ff 然后回车,如下图:
结果显示文件的格式为dos:
3.修改文件format为unix
使用vi修改文件format,命令 :set ff=unix,回车
4.修改完成后,查看文件格式已改为unix
再次执行 ./filebeat_kill.sh,执行成功