linux 中变量类型

 

001、Linux 中变量类型

  

01、系统变量:写入到系统配置文件中,启动终端则自动加载变量

02、shell变量:自定义临时变量

03、环境变量:通过使用export 作用与变量,使变量可以在进程间共享

 

env 可以显示所有的环境变量; set可以显示所有的变量; 测试如下:

[root@pc1 test]# tmp_env01=10                     ## shell自定义变量
[root@pc1 test]# export tmp_env02=10              ## 定义环境变量
[root@pc1 test]# env | grep "tmp_env*"            ## env可以查看所有的环境变量,但是不能查看普通自定义变量
tmp_env02=10
[root@pc1 test]# set | grep "tmp_env*"            ## set可以查看所有的变量
tmp_env01=10
tmp_env02=10

 

 

002、自定变量和环境变量的区别

a、区别1

自定义变量直接定义即可;

环境变量需要使用关键字 export;

b、区别2

自定义变量只在临时shell会话中起作用

环境变量可以在子进程中共享

测试如下:

[root@pc1 test]# tmp_env01=10              ## 定义普通shell变量
[root@pc1 test]# export tmp_env02=10       ## 定义环境变量
[root@pc1 test]# echo $tmp_env01           ## 普通变量在当前shell会话中生效
10
[root@pc1 test]# echo $tmp_env02           ## 环境变量在所有进程中共享
10
[root@pc1 test]# echo "echo \$tmp_env01" > test01.sh     ## 写入shell脚本中
[root@pc1 test]# echo "echo \$tmp_env02" > test02.sh     ## 写入shell脚本中
[root@pc1 test]# cat test01.sh
echo $tmp_env01
[root@pc1 test]# cat test02.sh
echo $tmp_env02
[root@pc1 test]# bash test01.sh                          ## 普通变量无法在子进程中共享

[root@pc1 test]# bash test02.sh                          ## 环境变量可以在子进程中共享
10

 

 

003、局部变量和全局变量

局部变量:作用范围仅在函数内部

全局变量:作用范围不局限与函数内部

举例如下:

#!/bin/bash
function my_fun() {
    local var1="Hello, World!"            ## 函数内部定义局部变量
    var2="abcde"                          ## 全局变量
    echo "$var1, 123"
    echo "$var2"
}

my_fun                                    ## 调用函数

echo "---------------"
echo "$var1, 456"                         ## 尝试在函数外部输出局部变量
echo "$var2, 456"                         ## 尝试在函数外部输出全局变量

 

[root@pc1 test]# cat test.sh              ## 查看脚本
#!/bin/bash

function my_fun() {
    local var1="Hello, World!"
    var2="abcde"
    echo "$var1, 123"
    echo "$var2"
}

my_fun                                   ## 调用函数

echo "---------------"
echo "$var1, 456"
echo "$var2, 456"
[root@pc1 test]# bash test.sh
Hello, World!, 123                      ## 调用函数,可以输出局部变量和全局变量
abcde
---------------
, 456                                   ## 函数外部,不能输出局部变量
abcde, 456

 。

 

参考:

01、https://mp.weixin.qq.com/s?__biz=MzI0MDUwODcwNg==&mid=2247483799&idx=1&sn=5c0d8e5101db9e1240b52e613119d26d&chksm=e9188bdade6f02ccff3edccc1515ac465e0a02b93f76e59aa386f150700ca7e465fb30b67de8&mpshare=1&scene=23&srcid=1114CByBhwqwEImGioaOrbzU&sharer_shareinfo=cf22a25b8b4092369fccc9a9d8456cbf&sharer_shareinfo_first=cf22a25b8b4092369fccc9a9d8456cbf#rd

02、https://mp.weixin.qq.com/s?__biz=MzI0MDUwODcwNg==&mid=2247483804&idx=1&sn=745d274bc10082eae0bd2b405cab5a1a&chksm=e9188bd1de6f02c7fd2d62a20fed339ba34ca29f38ab8c038016e3d4702b3a56e4bf84889015&mpshare=1&scene=23&srcid=1117tponSiREDbbuJXfpH8xW&sharer_shareinfo=8e6ef0a55c50be6e815f55bceea8b6d0&sharer_shareinfo_first=8e6ef0a55c50be6e815f55bceea8b6d0#rd

 

posted @ 2023-11-17 13:11  小鲨鱼2018  阅读(105)  评论(0编辑  收藏  举报