【发布时间】:2017-09-27 23:21:47
【问题描述】:
我的意图是动态检索表的值,在第一次运行 t=1 的循环中,表的值应该是“表”,在第二次运行时应该是“其他表”,所以我尝试了使用for循环命名变量,但我的输出是“1”,“2”而不是“表”,“其他表”。但是如果我把表= $ TABLENAME $ 1,输出是“表”。 我挑不出错误,我是shell脚本新手,如有错误请见谅,谢谢!!
TABLENAME1="table"
TABLENAME2="other table"
NUM_TABLE=2
for (( t = 1; t <= ${NUM_TABLE}; t++ )){
table=$TABLENAME$t
echo $table
}
【问题讨论】:
-
foobar=1; foobaz=2; a=foo; b=bar; c=baz; d=$a$b; echo ${!d}; d=$a$c; echo ${!d}在你的情况下echo ${!table} -
感谢您的解释,大卫,我明白了。
-
顺便说一句,这在BashFAQ #6 中有全面介绍,包括首先讨论避免出现问题的方法(使用关联数组和其他结构作为替代方案)。