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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-11-17 R语言中如何清除向量中的NA、返回非NA的索引、返回指定项的索引