shell:bash、sh、./、source

  1. sh 和 bash

GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接,但鉴于 bash 过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。Dash Shell 比 Bash Shell 小的多,符合POSIX标准。

1. ubuntu
Linux localhost 4.4.0-105-generic #128-Ubuntu SMP Thu Dec 14 12:42:11 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
xhx@localhost:~$ ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Aug 17  2017 /bin/sh -> dash
2. centos
[root@xuhx-02 bin]# uname -a
Linux xuhx-02 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@xuhx-02 bin]# ls -la sh
lrwxrwxrwx. 1 root root 4 6月  25 16:52 sh -> bash
  1. sh/bash 和 source
  • sh/bash 是打开子shel,在子shell 中运行,在子shell 设置的环境变量不会影响到父shell;
  • source 是在当前shell 中运行,因此修改完环境变量需要运行source /etc/profile 使其生效 而不是使用sh/bash命令;source = .;
  • ./ 需要对执行的脚本有r和x权限
[root@xuhx-02 ~]# sh t.sh 
anaconda-ks.cfg  hello  n2n  newdir1  pytho.py  rpmbuild  sort  test.sh  t.sh  ttttt.sh
[root@xuhx-02 ~]# bash t.sh
anaconda-ks.cfg  hello  n2n  newdir1  pytho.py  rpmbuild  sort  test.sh  t.sh  ttttt.sh
[root@xuhx-02 ~]# ./t.sh
-bash: ./t.sh: 权限不够
[root@xuhx-02 ~]# source t.sh
anaconda-ks.cfg  hello  n2n  newdir1  pytho.py  rpmbuild  sort  test.sh  t.sh  ttttt.sh
[root@xuhx-02 ~]# . t.sh 
anaconda-ks.cfg  hello  n2n  newdir1  pytho.py  rpmbuild  sort  test.sh  t.sh  ttttt.sh

[========]

参考 Linux里source、sh、bash、./有什么区别

转载于:https://my.oschina.net/u/4131409/blog/3079187

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值