我有一组变量,我通过eval
一个文件获得。
我的变量以这种模式命名:
variable_name_1
variable_name_2
...
variable_name_n
通常这些变量包含一个文件名,所以我自然想以这种方式进行迭代:
for cur in variable_name_[i]; do
<do stuff>; done
有没有办法实现该功能?
我有一组变量,我通过eval
一个文件获得。
我的变量以这种模式命名:
variable_name_1
variable_name_2
...
variable_name_n
通常这些变量包含一个文件名,所以我自然想以这种方式进行迭代:
for cur in variable_name_[i]; do
<do stuff>; done
有没有办法实现该功能?
是的,使用参数扩展:
#!/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
您的“配置文件”(?)可能不是最佳选择。