欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

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

时间:2021-04-08 10:39:50|栏目:Shell|点击:

场景

  • 系统中存在环境变量 USER=iceber
  • 脚本中存在一个变量 env_name=USER
  • 需要通过变量 env_name 获取到环境变量 USER 的值

错误示例

$ # 环境中已存在环境变量 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
  • 首先会将 $env_name 替换成 USER,这时会和前边的'$'组成字符串$USER,现在的命令实际已经变成了eval echo $USER
  • 然后 eval 再执行 echo $USER,这样就完成了环境变量的获取

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

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

上一篇:Linux 怎么实现添加FTP用户并设置权限的方法

栏    目:Shell

下一篇:基础的Linux Shell技巧小结

本文标题:Shell eval通过变量获取环境变量的方法实现

本文地址:http://www.codeinn.net/misctech/97164.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有