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)



posted @   悟透  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示