亲宝软件园·资讯

展开

Shell eval通过变量获取环境变量的方法实现

IceberGu 人气:0

场景

错误示例

$ # 环境中已存在环境变量 USER
$ env_name=USER
$ echo ${$env_name}
${$env_name}: bad substitution

很显然,直接使用 $ 嵌套来获取值是行不通的

正确示例

$ # 环境中已存在环境变量 USER
$ env_name=USER
$ eval echo '$'$env_name
icebergu

eval 先将对参数进行变量的替换,然后再将参数作为命令执行

eval echo '$'$env_naem

根据上边的解析会发现,命令其实可以写成 eval echo \$$env_name 也是可以的

同理,如果一个变量存的的其他变量的名字,使用 eval 也可以获取到相应变量的值

加载全部内容

相关教程
猜你喜欢
用户评论