Linux指令中source、bash、sh、./ 的区别

今天群里一位朋友看文档有一条命令是:

[[email protected] /]# sudo bash install.sh

 

他当时有一点郁闷:

为什么要用“bash"来执行"install.sh"?sudo命令是以系统管理者的身份执行指令,这个他知道。

 

这就是属于我们对Linux了解得不够彻底,下面就简单的说说:

 

一、source

[[email protected] /]# source a.sh

 

在当前shell中读取a.sh并执行。

a.sh不需要有执行权限。

 

source命令可以简写为" . "(如:. a.sh )

 

二、bash/sh

[[email protected] /]# sh a.sh

[[email protected] /]# bash a.sh

 

打开一个subshell去读取并执行a.sh,一旦这个subshell执行完马上退出。

a.sh不需要有执行权限。

 

bash和sh的区别:

使用sh调用执行脚本相当于打开了bash的POSIX标准模式。

 

三、./

[[email protected] /]# ./a.sh

 

打开一个subshell去读取并执行a.sh,一旦这个subshell执行完马上退出。

a.sh需要有执行权限。

    A+
发布日期:2021年06月04日 11:48:56  所属分类:Linux
最后更新时间:2021-06-04 11:54:28
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
【C语言入门到C++网络通讯架构师】系列课程
  • ¥ 1999.0元
  • 市场价:2999.0元
iOS应用开发指南第12季:定位服务
  • ¥ 79.0元
  • 市场价:99.0元
Node.js视频教程:node.js全栈开发之路
  • ¥ 45.0元
  • 市场价:45.0元
uni-app高级实战:多端企业网盘全栈开发
  • ¥ 298.0元
  • 市场价:598.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: