如何在bash中通过枚举变量进行迭代?

时间:2013-06-07 10:26:53

标签: bash

我有一组变量,我通过eval获得了一个文件。

我的变量以这种模式命名:

variable_name_1
variable_name_2
...
variable_name_n

通常这些变量包含文件名,所以我自然希望以这种性质进行迭代:

for cur in variable_name_[i]; do
 <do stuff>; done 

有没有办法实现这个功能?

1 个答案:

答案 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您的“配置文件”(?)可能不是最佳选择。