shell 变量里的变量
前言全局说明
变量里的变量。
一、说明
环境:
Ubuntu 18.04.6 LTS (Linux qt-vm 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux) python Python 2.7.17 (default, Mar 8 2023, 18:40:28) [GCC 7.5.0] on linux2 python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] on linux
二、变量里的变量
a=A b=B name_A=James name_B=Smith name=`eval echo '$'"name_$a"` echo ${name} name=`eval echo '$'"name_$b"` echo ${name}
eval 是延时获取命令。就是检查本行语句中$开头的变量,都被解释后,才给出最后结果。
三、参数变量
3.1 接收 $1 参数
name_A=James name_B=Smith name=`eval echo '$'"name_$1"` echo ${name} 测试: #./filename.sh A #./filename.sh B
3.2 数组
model_so=dummy.so R_so_list=( laaaR lsssR ldddR leeeR lrrrR ) A_so_list=( laaaA lsssA ldddA leeeA lrrrA ) SO_LIST=`eval echo '$'{"$1"_so_list[@]}` for i in ${SO_LIST[@]}; do echo lib${i:1}.so done 测试: #./filename.sh A #./filename.sh R
四、变量组合成的变量
在Shell脚本中,可以使用间接引用的方式来创建由另一个变量组成的变量名,然后对其进行赋值或引用。
这通常通过eval命令或者用${!varprefix@}语法实现。
4.1 下面是使用eval的例子:
variable_name="user1" user_var="name" eval ${user_var}=$variable_name echo $name # 输出 user1
4.2 使用${!varprefix@}的例子:
user_var="name" declare "$user_var"=$variable_name echo ${!user_var} # 输出 user2
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://www.cnblogs.com/jamesblue/p/7779474.html
https://blog.csdn.net/dengyin7408/article/details/101268959
https://www.baidu.com/s?ie=UTF-8&wd=shell+变量组合成的变量&tn=98012088_21_dg&ch=1 (百度AI)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!