1先说脚本执行问题
ubuntu下/bin/sh的指向
ubuntu 下 /bin/sh 默认是dash,用ls -l /bin/sh就可以看出来sh是指向dash的链接,有时候会导致使用bash脚本的时候出问题。
如果遇到这个问题了,就要把sh指向bash。
可以用ln:ln -s /bin/bash /bin/sh
或者用sudo dpkg-reconfigure dash 选择否
2再来看
- -bash: ./run.sh: Permission denied
这种一看就知道是没有权限执行
只需要执行
- chomd +x *.sh
3继续
- [root@localhost test]# ./run.sh
- -bash: ./run.sh: /bin/sh^M: bad interpreter: No such file or directory
这种情况主要原因是run.sh在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。
我们使用vim来转一下格式
- [root@localhost test]# vi run.sh
在vi命令模式中使用 :set ff 命令
- :set ff
可以看到改文件的格式为dos
- fileformat=dos
修改文件format为unix
方法一:使用vi修改文件format
命令:set ff=unix
- set ff=unix
执行完后再通过set ff命令查看文件格式,结果如下:
- fileformat=unix
方法二:直接使用dos2unix命令修改
- [root@localhost test]# dos2unix run.sh
- dos2unix: converting file run.sh to UNIX format ...