Bash - 组合循环变量和工作变量

时间:2016-12-10 03:33:48

标签: linux bash

在Linux Bash中,

a1=web
a2=app
for counter in 1 2
do
a=a$counter
echo $[$a]
done

所以,

$[$a]

它如何回应web&应用?

1 个答案:

答案 0 :(得分:3)

您正在尝试的内容适用于整数值的变量,因为算术扩展会将字符串递归扩展为参数,直到找到整数值。例如:

$ web=1
$ a=web
$ echo $[a]
1
$ echo $((a))
1

$[...]只是一种过时的算术表达形式,早于POSIX标准$((...))

但是,您正在寻找简单的间接扩展,其中参数的值用作具有任意值的另一个参数的名称,而不是连续扩展直到找到整数。在这种情况下,请使用${!...}形式的参数扩展。

$ a=web
$ a1=a
$ echo $a1
a
$ echo ${!a1}
web
相关问题