1

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?

0

1 Answer 1

4

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
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.