sh脚本和bash脚本有何区别?如何调用(执行)脚本

sh脚本和bash脚本有何区别?如何调用(执行)脚本

/bin/sh与/bin/bash的区别

sh:如果前面有语句报错,则报错语句后面的命令不执行

bash:如果前面有语句报错,后面的命令也会执行

sh跟bash的区别,实际上就是bash有没有开启posix模式的区别(遵循posix的特定规范,有可能就包括这样的规范:“当某行代码出错时,不继续往下解释”)

脚本第一句:

#!/bin/sh 等同于 #!/bin/bash --posix

第一个shell脚本

#!/bin/bash

#author wangxiangyu

# 2017-05-29

echo 'hello world' > /home/crontab/test.log

注意:

#!/bin/bash 表示使用bash版本的shell脚本,固定格式

echo 输出语句

如果在Windows系统环境下编写shell脚本,会报“/bin/sh^M: bad interpreter: No such file or directory”异常,原因是两种系统有些字符(比如回车符)不一样,Linux识别不了造成的,可以使用:dos2unix hello.sh命令转换格式

系统可能没有安装这个命令的包,可以手动安装,使用命令:yum -y install dos2unix

脚本执行方式

1、赋予执行权限,直接运行

chmod 755 hello.sh

./hello.sh(相对路径) 或 /test/hello.sh(绝对路径)

2、通过bash调用执行脚本

bash hello.sh