for循环有三种结构:列表for循环,不带列表for循环和类C风格for循环。

do和done之间的命令成为循环体,执行次数和list列表中常熟或字符串的个数相同。for循环,首相是将in后list的第一个常数或字符串复制给循环变量,然后执行循环体,以此执行list,最后执行done命令后的命令序列。

shell支持列表for循环使用略写的计数方式,1~5的范围用{1..5}表示,

shell中还支持按规定的步数进行跳跃的方式实现for循环,例如计算1~100内所有的奇数

一、列表for循环

#!/bin/bash                            #!/bin/bash
for avrible1 in{1..5}                  sum=0
do                                     for i in {1..10..2} ; do
echo "hello,welcome $avrible1 times!"  echo $i                                    
done                                     done
                                        
#!/bin/bash
for avr in 
二、不带列表for循环
#!/bin/bash
echo "number of
arguments is $#"
echo "What you
input is: "
for argument in
"$@"
do
echo
"$argument"
done
三、类C语言for循环
#!/bin/bash
for ((integer = 1;integer <=5; integer++))
do
        echo "$integer"
done

for i in $(cat /tmp/xuexi/iplist);do ./batch.sh $i;done

4、for循环语句的嵌套使用

语法结构:

#!/bin/bash
for 变量1 in <条件列表>
    do
    for 变量2 in <条件列表>
        do
      命令2
      done
     命令1
done

关于for循环嵌套使用打印等腰三角形

#!/bin/sh
read -p "Please input a number:" num
read -p "Please input the char:" char
  for ((i=1; i<=num; i++));
  do
        for ((j=num-i; j>0; j--));
        do
                echo -n ' '
        done
        for ((h=1; h<=((2*i-1)); h++))
        do
                echo -n "$char"  
        done
   echo
  done
root@node1 shift]# ./zsj1.sh 
Please input a number:4
Please input the char:@
   @
  @@@
 @@@@@
 @@@@@@@

在上述等腰三角形的打印过程中分类应用了三个for循环分别是,1、外层for循环用于控制打印三角形的行数,内层第一个for循环用于打印空格数,第三个则是控制字符char的输出个数。三个for循环的使用将等腰三角形成功的打印出来。

注:{1..10..2}取奇数

   $#  参数

   $@  脚本输入的参数其岁$#的值的标下而变小,最小值为0