我有一组变量,我通过eval
获得了一个文件。
我的变量以这种模式命名:
variable_name_1
variable_name_2
...
variable_name_n
通常这些变量包含文件名,所以我自然希望以这种性质进行迭代:
for cur in variable_name_[i]; do
<do stuff>; done
有没有办法实现这个功能?
答案 0 :(得分:4)
是的,使用parameter expansion:
#!/bin/bash
variable_name_1="one"
variable_name_2="two"
variable_name_3="three"
for cur in ${!variable_name_*}; do
echo "${cur}=${!cur}"
done
示例运行:
$ ./foo.sh
variable_name_1=one
variable_name_2=two
variable_name_3=three
但您可能想重新考虑如何获取这些变量,eval
您的“配置文件”(?)可能不是最佳选择。