架构师

您现在的位置是:首页 > 技术博客 > 爱运维

爱运维

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

架构师小跟班 2019-08-15 爱运维
/bin/sh与/bin/bash的区别sh:如果前面有语句报错,则报错语句后面的命令不执行bash:如果前面有语句报错,后面的命令也会执行sh跟bash的区别,实际上就是bash有没有开启posix模式的

/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

文章评论