问题
I have a file where a bunch of variables are defined. It could be one, four or twenty. They have names such as ipt_rss and bhd_rss. Let's call these variables var_i
Now, I'd like to let bash loop over these variables like this:
for all i in var_i do
command1 arg command2 arg $var_1 > /some/directory/$var_i.rss
echo "Success finding $var_i"
done
How can I accomplish that?
回答1:
If the variables all begin with a common prefix, you can iterate over all such variable names and use indirect variable expansion on the results:
for var in ${!rss_*}; do # rss_ipt, rss_bhd, etc
command1 arg command2 arg "${!var}" > "/some/directory/${!var}.rss"
done
Otherwise, the best you can do is explicitly define an array of variable names, or hard-code the list of names:
vars=( ipt_rss bhd_rss ... )
for var in "${vars[@]}"; do
or
for var in ipt_rss bhd_rss; do
来源:https://stackoverflow.com/questions/26367263/let-bash-loop-over-unknown-number-of-variables