shell脚本之变量的作用域

导读:本篇文章讲解 shell脚本之变量的作用域,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

可把变量提升为全局环境变量,可供其他Shell程序使用

场景1:

a.定义一个变量C,可以打印出来

[root@mylinux2 shell]# C=30
[root@mylinux2 shell]# echo $C
30

b.在脚本文件中打印这个变量C
在这里插入图片描述
执行脚本,发现不能拿到C的值
在这里插入图片描述
记住 : 用户登录之后开启一个解释器bash(一号);当启动一个脚本文件:重新启动一个bash(二号)去执行脚本,二号bash是一号子bash

[root@mylinux2 shell]# C=30
[root@mylinux2 shell]# echo $C
30

而上面的代码是在一号bash下运行的
执行脚本bash test3.sh是在二号bash下运行的

场景2

明确告知:环境变量TEST_B是在用户环境中定义的
一号bash下可以获得TEST_B的值

[root@mylinux2 shell]# echo $TEST_B
666

把TEST_B写入到脚本中,执行脚本也可以获得TEST_B的值(二号bash也可以获得TEST_B的值)

[root@mylinux2 shell]# bash test3.sh 
10
hello zl

666

总而言之:在我用户下定义的环境变量,不管是子bash还是父bash,当前用户都可以拿到

另一个用户想拿环境变量TEST_B?拿不到

场景3

案例:
a、在第二个窗口中定义一个环境变量

[root@mylinux2 ~]# export TEST_F=40
[root@mylinux2 ~]# echo $TEST_F
40

b、在第一个窗口中拿TEST_F,拿不到

[root@mylinux2 shell]# echo $TEST_F

c、在第一个窗口中的test3.sh中写入变量
echo $TEST_F
运行脚本,也拿不到值

d、但是在第二个窗口中能拿到值
在这里插入图片描述
所以:在第二个服务器中的定义的环境变量TEST_F,在第一个服务器中拿不到;
原因:临时的用户环境变量只作用到当前bash及它的子bash。

注意:两个mylinux2服务器中的bash是两个不同的bash,是同级的bash,

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74302.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!