对于终端循环

时间:2012-12-06 01:27:45

标签: bash shell for-loop zsh tcsh

我有一个脚本,我需要运行许多输入组合。目前我正在使用perl脚本,但我想学习如何在shell中完成它。

我需要运行./script.pl a b 对于a = 1..100和b = 1..100

的所有组合
for ($a = 1; $a <100; $a++) {
    for ($b = 1; $b <100; $b++) {
      system "./script.pl $a $b";
        }
}

我目前正在使用bash,但zsh或tcsh也可以使用。

1 个答案:

答案 0 :(得分:3)

bash for loops中有两种语法选择。

for VARIABLE in 1 2 3 4 5 .. N
do
    commands
done

for (( EXP1; EXP2; EXP3 ))
do
    commands
done

第一个类似于java循环用于导航列表等,而第二个类似于旧学校for循环。

您可以将循环重写为其中任何一个。

for b in {1..100}
do
   ./script $a $b
done

for ((b = 1; b <100; b++))
do
   ./script $a $b
done