加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell脚本不同运行方式的差异

发布时间:2020-12-15 23:12:10 所属栏目:安全 来源:网络整理
导读:说明:以下是个人的见解,不一定都正确,如有错误,欢迎指正! 一,shell脚本的运行方式,最常见的有以下几种: 1 )? . xxx.sh,注意,前面是一个点‘.‘ 2 ) source xxx.sh,这种方式和第一种的方式效果是一样的 3)./xxx.sh 4) ?sh xxx.sh 5)? bash xxx.sh ?

说明:以下是个人的见解,不一定都正确,如有错误,欢迎指正!

一,shell脚本的运行方式,最常见的有以下几种:

1 )? . xxx.sh,注意,前面是一个点‘.‘

2 ) source xxx.sh,这种方式和第一种的方式效果是一样的

3)./xxx.sh

4) ?sh xxx.sh

5)? bash xxx.sh

?

二,shell运行方式结果的差异

1) . xxx.sh是在当前的bash环境下执行xxx.sh脚本文件,xxx.sh文件的所有者可以无可执行权限,原有的环境变量的值会被脚本修改。

2)source? xxx.sh,这种方式和方式1的执行效果是一样的,同样也不要求文件的所有者必须要有可执行权限,通常用于生效刚修改过的脚本文件,例如我们在修改环境变量配置脚本文件之后就通过执行source xxx使其立即生效,同样这种执行方式会修改原有的环境变量的值。

第一和第二种方式会修改原有的环境变量的值。

?

3)./xxx.sh方式运行脚本文件,会打开一个子shell来执行脚本文件,运行一个shell脚本时会启动另一个命令解析器。每个shell脚本运行在parent shell的一个子进程里,这个parent shell是指一个在控制终端或者在一个xterm窗口中给你指示符的进程,shell脚本也可以启动它自己的子进程。

?

这种运行方式要求被运行的脚本文件要有可执行的权限,否则脚本运行失败。

这种运行方式不会改变原有的环境变量的值。

?

4)sh xx.sh的方式执行脚本文件,这种方式会打开新的子shell读取并执行脚本,并且不要求被执行的文件必须有可执行的权限。

原有的环境变量的值没被改变

?

5)bash xxx.sh的方式运行脚本文件,这种运行方式也没有要求被执行文件必须有可执行的权限,和sh xxx.sh方式一样会打开新的子shell读取并执行脚本,也不会改变原有的环境变量的值。


总结:

  我们在写脚本的时候,有时候需要改变原有的环境变量的值,有时候不能改变原有的环境变量的值,这时候我们就要注意选择运行脚本的方式了,因为不同的运行脚本的方式会产生不同的结果。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读