base脚本执行的一些问题

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再来看

  1. -bash: ./run.sh: Permission denied

这种一看就知道是没有权限执行

只需要执行

  1. chomd +x *.sh

 

3继续

  1. [root@localhost test]# ./run.sh   
  2. -bash: ./run.sh: /bin/sh^M: bad interpreter: No such file or directory  

这种情况主要原因是run.sh在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

我们使用vim来转一下格式

  1. [root@localhost test]# vi run.sh   

在vi命令模式中使用 :set ff 命令

  1. :set ff

可以看到改文件的格式为dos

  1. fileformat=dos

修改文件format为unix

方法一:使用vi修改文件format

命令:set ff=unix

  1. set ff=unix

执行完后再通过set ff命令查看文件格式,结果如下:

  1. fileformat=unix

方法二:直接使用dos2unix命令修改

  1. [root@localhost test]# dos2unix run.sh   
  2. dos2unix: converting file run.sh to UNIX format ...  

 

原文地址:https://www.cnblogs.com/shiv/p/5087964.html