如何在shell中的"if"条件下实现"for"循环

0 shell for-loop if-statement

我有一个要求在哪里,我需要在嵌套的if条件下使用一组特定的值.我试图使用for循环实现它,但无法正确的语法.

例如.

if [ "$i" -ge 353 ] && [ "$i" -lt 385 ]
then
   for((m=7001;m<7016;m++))
value=$m
done
fi
Run Code Online (Sandbox Code Playgroud)

这是正确的语法吗?

fed*_*qui 5

你需要一个额外dofor循环.格式化使它更清晰:

if [ "$i" -ge 353 ] && [ "$i" -lt 385 ]
then
   for((m=7001;m<7016;m++))
   do
      value=$m
   done
fi
Run Code Online (Sandbox Code Playgroud)

请注意,所有这些while,for等等都需要包装dodone:

while #something
do
    things
done

for #condition
do
    things
done
Run Code Online (Sandbox Code Playgroud)

'done'表示使用$ i值的代码已完成,$ i可以获取新值.

对于if:

if #condition; then
    things
fi
Run Code Online (Sandbox Code Playgroud)