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