bash和sh区别

在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数),一般的,sh是bash的“子集”,不是子集的部分。bash程序执行,当“$0”是“sh”的时候,则要求代码遵循一定的规范,当不符合规范的语法存在时,则会报错,所以可以这样理解,“sh”并不是一个程序,而是一种标准(POSIX),这种标准,在一定程度上保证了脚本的跨系统性

时间: 2024-08-12 12:28:09

bash和sh区别的相关文章

linux报错-bash: ./xx.sh: Permission denied

linux报错-bash: ./xx.sh: Permission denied 在linux下执行sh文件时提示: -bash: ./xx.sh: Permission denied 进行授权: chmod 777 xx.sh Linux chmod +755和chmod +777 区别: 755 代表用户对该文件拥有读,写,执行的权限, 同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样. 777代表,user,group ,others ,都有读写和可执行权限.

-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录

昨天在windows下用写字板写了个shell脚本,使用winscp上传到linux上运行的时候发现运行不了,提示-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录,经过查找资料发现原因如下: 1.dos格式的文本文件要转换为unix格式的文本文件,在linux上操作如下:#unix2dos job.sh 2.或者vi job.sh set ff=unix wq! 保存退出后就可以运行.

LINUX权限错误:-bash: ./startup.sh: Permission denied

LINUX权限-bash: ./startup.sh: Permission denied 执行./startup.sh,或者./shutdown.sh的时候,报:Permission denied,因为是执行tomcat时,用户无权限,导致出现以上错误.需要用命令:chmod 修改一下bin目录下的.sh权限. 具体操作如下:chmod u+x *.sh

解决linux的-bash: ./xx.sh: Permission denied

在linux下执行sh文件时提示下面信息:-bash: ./xx.sh: Permission denied解决:chmod 777 xx.sh Linux chmod +755和chmod +777 各是什么意思呢? 755 代表用户对该文件拥有读,写,执行的权限,同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样.777代表,user,group ,others ,都有读写和可执行权限. 在linux终端先输入ls -al,可以看到如:   -rwx-r--r--

Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory

在学习shell中测试case参数命令代码如下 #!/bin/bash #switch测试 case $1 in     start)         echo 'start'     ;;     stop)         echo 'stop'     ;; esac 在给当前shell脚本赋予了执行权限之后,执行报错代码如下 [[email protected] sh]# ./switch.sh stop -bash: ./switch.sh: /bin/bash^M: bad inte

【问题解决】syntax error: unexpected end of file或-bash: ./full_build.sh: /bin/bash^M: bad interpreter: No

在阅读的过程中有任何问题,欢迎一起交流 邮箱:[email protected]    QQ:1494713801 执行一个脚本full_build.sh 时, 一直是提示我: -bash: ./full_build.sh: /bin/bash^M: bad interpreter: No such file or directory 或提醒  syntax error: unexpected end of file 出现上面错误的原因之一是脚本文件是DOS格式的, 即每一行的行尾以\r\n来标

[转帖]bash中(),{},(()),[],[[]]的区别

https://www.cnblogs.com/marility/p/7259821.html 差之毫厘谬以千里 需要仔细认真 前言:在bash中遇到各种括号,同时在进行字符数值比较判定时,总是不断出现问题,于是通过参考<advanced bash-scripting guide>,同时在centos 6.7版本上进行测试,现况总结如下.如有纰漏,望指正. 一.() 一个命令组合,相当于一个命令组 [[email protected]~chunlanyy testdir]# I=123;(I=

常用bash,autoUserAdd.sh

#!/bin/bash # auth: xiluhua # date: 2017-02-26 read -p "please input a username:" username [ -z $username ] && echo "a username is needed" && exit 2 if id $username &> /dev/null then echo $username 'is exist' fi

关于LINUX权限-bash: ./startup.sh: Permission denied

<script type="text/javascript"></script><script type="text/javascript"></script> 在执行./startup.sh,或者./shutdown.sh的时候,爆出了Permission denied, 其实很简单,就是今天在执行tomcat的时候,用户没有权限,而导致无法执行, 用命令chmod 修改一下bin目录下的.sh权限就可以了 如chm