在使用shell变量的过程中,有一些变量是带有同样的前缀或是后缀。特别是在循环遍历的时候,希望能够“拼出”这些变量,而不仅仅是“拼出”变量这个字符串。
上面的描述有些饶舌,直接上例子
$ cat test.sh
#!/bin/bash
xyz_1=10
xyz_2=20
xyz_3=30
m='xyz'
for i in {1..3};do
n=`eval echo '$'${m}_$i`
echo $n
done
下面是解释
- 有三个变量,它们前缀都是一样的,不同的是最后的数字
- m的值恰好是上面三个变量的前缀
- 这个例子解释了如何用m加数字来表示前面的三个变量
- 注意n的赋值中,开头和结尾是反引号’`’,而不是单引号