工作用需要在shell脚本中使用到两次去变量值,发现使用${$bb}会有提示: bash: ${$bb}: bad substitution
richard@richard ~ $ aa=123
richard@richard ~ $ echo $aa123
richard@richard ~ $ bb=aa
richard@richard ~ $ echo ${$bb}
bash: ${$bb}: bad substitution
经过查资料和实验,发现有三种方式可以实现:
1.使用echo ${!bb}
richard@richard ~ $ echo ${!bb}
123
2.使用eval echo \$$bb
richard@richard ~ $ eval echo \$$bb
123
3.使用echo $[ $bb ]
richard@richard ~ $ echo $[ $bb ]
123
暂时就这三种了,如果后续发现其他的方式的话会继续更新.
另外对于需要取出aac这种值的情况,第二三种方式可以实现.
richard@richard ~ $ aac=456
richard@richard ~ $ eval echo \$${bb}c
456
richard@richard ~ $ echo $[ ${bb}c ]
456
而使用第一种
richard@richard ~ $ echo ${!{bb}c}
bash: ${!{bb}c}: bad substitution
则不会成功,所以请选择二三种方式.