for shell/if shell脚本中的条件

mkn*_*mkn 4 bash shell

我从来没有做过的shell脚本之前,现在我遇到了一个简单的问题...我有一个for循环,其执行每次run.sh脚本.要查看脚本已经运行了多远,我想打印例如每5000个实际索引.

$counter = 0
for ((  i = 0 ;  i <= 5000;  i++  ))do
    if ($i =  $counter); then
            echo "$counter"
            counter=$(counter+1000)
    fi
./run.sh
done
Run Code Online (Sandbox Code Playgroud)

运行这段代码会给我以下错误

./for_loop.sh: line 1: =: command not found
./for_loop.sh: line 3: 0: command not found
Run Code Online (Sandbox Code Playgroud)

我也试过用它来初始化变量计数器

declare -i counter = 0
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误

./for_loop.sh: line 1: declare: `=': not a valid identifier
Run Code Online (Sandbox Code Playgroud)

Der*_*har 6

你真的不需要两个柜台.单个计数器就足够了:

for (( counter = 0; counter <= 5000; counter++ ))
do
    if (( counter % 1000 == 0 ))
    then
            echo "$(( counter / 1000 ))"
    fi
    ./run.sh
done
Run Code Online (Sandbox Code Playgroud)

这将执行run.sh5000次并每1000次迭代打印计数器值.注意,%是除数之后计算余数的模运算符,它/是整数除法运算符.