/bin/bash 与 /bin/sh 的区别
  TnD0WQEygW8e 2023年11月05日 20 0

 

[aimin@localhost ~]$ ll /bin/sh
lrwxrwxrwx. 1 root root 4 Oct 14  2017 /bin/sh -> bash
[aimin@localhost ~]$ ll /bin/bash
-rwxr-xr-x. 1 root root 938768 Feb 21  2013 /bin/bash
[aimin@localhost ~]$ bash
[aimin@localhost ~]$ which bash
/bin/bash
[aimin@localhost ~]$

--------------------------------------

1. sh一般设成bash的软链
[work@zjm-testing-app46 cy]$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Nov 13 2006 /bin/sh -> bash
2. 在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式
3. 也就是说 /bin/sh 相当于 /bin/bash --posix

所以,sh跟bash的区别,实际上就是bash有没有开启posix模式的区别

(遵循posix的特定规范,有可能就包括这样的规范:“当某行代码出错时,不继续往下解释”)

--------------------------------------

 它们之间的各种差异都是来自 POSIX 标准模式 和 bash 的差异,比如 用 : 截取字符串,不能用 let , 遇错中断 等等,在使用时需要注意。

--------------------------------------

(1)sh test.sh :即使在脚本中指定了#!/bin/bash,但仍然是使用/bin/sh执行test.sh
(2)chmod u+x test.sh;./test.sh :这种执行方式会按照脚本第一行指定的shell执行

--------------------------------------

 

REF

https://stackoverflow.com/questions/5725296/difference-between-sh-and-bash

https://askubuntu.com/questions/766270/what-is-posix-compatible-mode-in-linux

https://askubuntu.com/questions/422492/why-script-with-bin-bash-is-working-with-bin-sh-not

 



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
TnD0WQEygW8e