bash 和 sh 的一点儿区别

PS:不明之处,请君留言,以期共同进步!


1. 发现区别

同样的 shell 脚本,使用 sh xxx.sh 和 bash xxx.sh 调用执行时结果不同,使用 sh 时会输出许多匪夷所思的结果,而使用 bash 时就完全按照预期。

2. 探究区别

(1)sh 是 bash 的软链接,如下:

fxw@fxw-Lenovo:~ $ which sh
/bin/sh
fxw@fxw-Lenovo:~ $ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 7月 12 00:55 /bin/sh -> dash

这么看似乎二者并没有什么区别呀,其实不然。

(2)在一般的 Linux 系统中(例如 Ubuntu )中,使用 sh 调用执行 shell 脚本相当于打开了 bash 的 POSIX 标准模式,这种模式在一定程度上保证了脚本的跨系统性(跨 UNIX 系统),即 /bin/sh 相当于 /bin/bash --posix,所以二者的一个区别就是有没有开启 POSIX 标准模式。

二者还有没有其他的区别呢?等待发现。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值