shell变量的嵌套

xuehan1983 2013-10-09 04:39:40
本人shell菜鸟,请教各位大神一个问题:
目前定义了三个变量
typeset aaset="aa"
typeset bbset="bb"
typeset ccset="cc"

现在有一个type变量,它的值可能是aa, bb或者cc.
请问怎么才能echo打印时候通过type来选择打印前面的那三个变量?
用echo ${${type}set}这样子是不行的。
...全文
428 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuehan1983 2013-10-10
  • 打赏
  • 举报
回复
引用 4 楼 iasky 的回复:
[quote=引用 3 楼 xuehan1983 的回复:] [quote=引用 2 楼 iasky 的回复:] [quote=引用 1 楼 iasky 的回复:]
$ aaset=120
$ type=aa
$ varname=${type}set
$ echo ${!varname}
结果就是120,答应aaset,varname这个变量内容就是aaset
打印..[/quote] 不知道是不是因为我的是ksh的问题,echo出来的是aaset,而不是120. 貌似[/quote] ksh要nameref
nameref varname=${type}"set"
echo ${varname}
[/quote] could work,非常感谢!
ljc007 2013-10-10
  • 打赏
  • 举报
回复
aaset="111"
bbset="222"
ccset="333"
type="bb"
eval echo \$${type}set
iasky 2013-10-10
  • 打赏
  • 举报
回复 1
引用 3 楼 xuehan1983 的回复:
[quote=引用 2 楼 iasky 的回复:] [quote=引用 1 楼 iasky 的回复:]
$ aaset=120
$ type=aa
$ varname=${type}set
$ echo ${!varname}
结果就是120,答应aaset,varname这个变量内容就是aaset
打印..[/quote] 不知道是不是因为我的是ksh的问题,echo出来的是aaset,而不是120. 貌似[/quote] ksh要nameref
nameref varname=${type}"set"
echo ${varname}
xuehan1983 2013-10-10
  • 打赏
  • 举报
回复
引用 2 楼 iasky 的回复:
[quote=引用 1 楼 iasky 的回复:]
$ aaset=120
$ type=aa
$ varname=${type}set
$ echo ${!varname}
结果就是120,答应aaset,varname这个变量内容就是aaset
打印..[/quote] 不知道是不是因为我的是ksh的问题,echo出来的是aaset,而不是120. 貌似
iasky 2013-10-09
  • 打赏
  • 举报
回复
引用 1 楼 iasky 的回复:
$ aaset=120
$ type=aa
$ varname=${type}set
$ echo ${!varname}
结果就是120,答应aaset,varname这个变量内容就是aaset
打印..
iasky 2013-10-09
  • 打赏
  • 举报
回复
$ aaset=120
$ type=aa
$ varname=${type}set
$ echo ${!varname}
结果就是120,答应aaset,varname这个变量内容就是aaset

19,610

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧