for for loop with multiple varibles(statements)

Mat*_*ldi 0 linux bash shell for-loop

我想通过创建两个for循环变量来自动化dns-add .我不确定这是怎么回事.我知道下面的代码是错误的.我很难理解如何在单行中创建两个变量.

for i in `cat list.csv`;
  for g in `cat list2.csv`; do
    echo $i;
    echo $g;
    dns-add-record --zone=impl.wd2.wd --record=$i --type=CNAME --record-value=$g
  done;
done
Run Code Online (Sandbox Code Playgroud)

我认为唯一可行的是这个,但我怀疑它会起作用.有人有任何提示吗?

for i in `cat list.csv` && \
  for g in `cat list2.csv ; do
    echo $i && $g;
    dns-add-record --zone=impl.wd2.wd --record=$i --type=CNAME --record-value=$g
  done;
done
Run Code Online (Sandbox Code Playgroud)

che*_*ner 7

一for环是遍历错结构的任何文件(见巴什FAQ 001),更不用说两个文件.请改用while read命令使用while循环.

while read -u 3 i; read -u 4 g; do
    echo "$i"
    echo "$g"
    dns-add-record --zone=impl.wd2.wd --record="$i" --type=CNAME --record-value="$g"
done 3< list.csv 4< list2.csv
Run Code Online (Sandbox Code Playgroud)