循环bash时使用多个变量

时间:2016-06-08 16:40:58

标签: bash scripting

寻找有关使用命令调用bash脚本的一些帮助,该命令调用多个变量,其中每个变量包含需要运行文件的文本列表

这是我的例子。

FILE1.TXT:

USA
EU
Asia
SouthAmerica

FILE2.TXT:

user1
user2
user3
user4

var1=$(cat file1.txt)
var2=$(cat file2.txt)

echo $var1
USA EU Asia SouthAmerica

echo $var2
user1 user2 user3 user4

我需要的是

while read var1 var2;
do
   *command* --region $var1 --profile $var2 *do something*;

done | tee -a $var2.txt

如何让one命令迭代var1var2的内容以产生我需要的结果?

2 个答案:

答案 0 :(得分:1)

为什么不使用几个for循环:

var1=$(cat file1.txt)
var2=$(cat file2.txt)
for i in ${var1} ; do
  for x in ${var2} ; do
    *command* --region ${i} --profile ${x} *do something*
  done
done

答案 1 :(得分:0)

有点不清楚你想要达到的目标。如果要为每个区域中的每个用户执行命令,可以使用两个嵌套的while循环:

while read -r region ; do
    while read -r user ; do
        command --region "${region}" --profile "${user}"
    done < users.txt
done < regions.txt

顺便说一下,read内置的工作方式与您可能会有所不同。检查help read以查看其工作原理。