问题现象:
上传了一个SHELL脚本到服务器,执行时提示"没有那个文件或目录"。
[root@namenode bin]# ./flinkx
: 没有那个文件或目录
问题排查:
出现bad interpreter:No such file or directory的原因,是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来。
解决方法:
通过dos2unix工具对SHELL脚本进格式转换。
1、安装转换工具
yum方式安装dos2unix
[root@namenode bin]# yum install dos2unix
2、脚本格式转换
使用dos2unix转换脚本
[root@namenode bin]# dos2unix flinkx
dos2unix: converting file flinkx to Unix format ...
3、执行SHELL脚本
[root@namenode bin]# ./flinkx
flinkx starting ...
[root@namenode bin]# nohup: 把输出追加到"nohup.out"
shell脚本成功执行。