shell脚本之变量的作用域

在这里插入图片描述


可把变量提升为全局环境变量,可供其他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,

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码敲到头发茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值