2016-06-08 15 views
1

für einige Hilfe der Suche mit dem Befehl einen Bash-Skript zu schreiben, die mehrere Variablen nennen, wo jede Variable Liste von Text enthält, die Datei gegenVerwendung mehrere Variablen while-Schleife bash

Hier laufen muß, ist mein Beispiel.

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 

Was ich brauche, ist für

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

done | tee -a $var2.txt 

Wie kann ich mit dem einen Befehl den Inhalt von var1 und var2 durchlaufen, um die Ergebnisse zu erzeugen, die ich brauche?

Antwort

1

Warum nicht einfach ein paar für Loops verwenden:

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 
0

Es ist ein bisschen unklar, was Sie erreichen möchten. Wenn Sie den Befehl für jeden Benutzer in jeder Region ausführen möchten, können Sie zwei verschachtelte while-Schleifen verwenden:

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

Btw, die read builtin funktioniert unterschiedlich, dass man annehmen könnte. Überprüfen Sie help read, um zu sehen, wie es funktioniert.