使用两个输入执行for循环

时间:2018-04-05 07:26:56

标签: linux loops

我正在使用for循环在linux中执行我的命令。我在一个输入中有20个文件,在另一个输入中有20个文件

for f1 in zero-mam-2050-2074*.nc;
do;
f2={avm-mam-1976-2000-tasmax-*.nc};
command $f1 $f2 output;
done

没有阅读第二个输入。

1 个答案:

答案 0 :(得分:0)

分号:

for f1 in zero-mam-2050-2074*.nc;
do;
f2={avm-mam-1976-2000-tasmax-*.nc};
command $f1 $f2 output;
done

没用。

for f1 in zero-mam-2050-2074*.nc
do
  f2={avm-mam-1976-2000-tasmax-*.nc}
  command $f1 $f2 output
done

第3行很可疑。你想让我做什么?创建一个数组?

for f1 in zero-mam-2050-2074*.nc
do
  f2=(avm-mam-1976-2000-tasmax-*.nc)
  command "$f1" "${f2[@]}" output
done

要循环,让我们说20个文件,匹配模式f1,并调用每个文件,假设有20个匹配f2的文件:

for f1 in zero-mam-2050-2074*.nc
do
  f2=avm-mam-1976-2000-tasmax-*.nc
  command "$f1" $f2 output
done

这将导致20个命令调用,滚动到f1,但每个调用所有匹配f2的文件。

对于20x20匹配,您将使用第二个循环。 适合我硬盘上的文件格式:

for f1 in file1*; do  f2=sample.*;  echo command "$f1" $f2* output; done
command file1 sample.conf sample.go sample.log sample.xml output
command file1.txt sample.conf sample.go sample.log sample.xml output
command file1nums sample.conf sample.go sample.log sample.xml output

您当然会使用您的模式,并在测试后删除 echo