2

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

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

variable_name_1
variable_name_2
...
variable_name_n

通常这些变量包含一个文件名,所以我自然想以这种方式进行迭代:

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

有没有办法实现该功能?

4

1 回答 1

4

是的,使用参数扩展

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

于 2013-06-07T10:49:20.477 回答