二层循环

for 语句

#!/bin/bash

for ((i=1; i<=10; i++))
do
  echo "outer loop:$i"
  for ((j=1; j<=5; j++))
  do
    echo "--inter loop:$j"
  done
done

 

while 语句

#!/bin/bash

a=1

while [ $a -le 5 ]
do
  echo "outer loop:$a"
  b=1

  while [ $b -le 10 ]
  do
    echo "--inter loop:$b"
    let b++
  done

  let a++
done

  

  

三层循环

#!/bin/bash

for ((i=1; i<=10; i++))
do
  echo "outer loop:$i"
  for ((j=1; j<=5; j++))
  do
    echo "--1st inter loop:$j"
    for ((k=1; k<=3; k++))
    do
      echo "---2nd inter loop:$k"
    done
  done
done

  

break 跳出单个循环

for 语句

#!/bin/bash

for ((a=1; a<=5; a++))
do
  echo "outer loop:$a"
  for ((b=1; b<=50; b++))
  do
    if [ $b -eq 5 ];then
      break
    fi
    echo "--inter loop:$b"
  done
done

 

while 语句

#!/bin/bash

a=1

while [ $a -le 5 ]
do
  echo "outer loop:$a"
  b=0

  while [ $b -le 10 ]
  do
    let b++

    if [ $b -ge 4 -a $b -le 8 ];then
      break
    fi
    echo "--inter loop:$b"
  done

  let a++
done

Shell多层循环&&利用循环语句输出简单图形_九九乘法表

 

 

  

continue 中止某次循环中的命令,但不会完全中止整个命令

for 语句

#!/bin/bash

for ((a=1; a<=15; a++))
do
  if [ $a -gt 5 ] && [ $a -lt 10 ];then
    continue
  fi
  echo "current value:$a"
done

 

while 语句

#!/bin/bash

a=1

while [ $a -le 5 ]
do
  echo "outer loop:$a"
  b=0

  while [ $b -lt 10 ]
  do
    let b++

    if [ $b -ge 4 -a $b -le 8 ];then
      continue
    fi
    echo "--inter loop:$b"
  done

  let a++
done

Shell多层循环&&利用循环语句输出简单图形_bash_02

 

 

 

多层循环中的break命令

#!/bin/bash

for ((i=1; i<=10; i++))
do
  echo "outer loop:$i"
  for ((j=1; j<=5; j++))
  do
    echo "--1st inter loop:$j"
    for ((k=1; k<=3; k++))
    do
      echo "---2nd inter loop:$k"
      if [ $k -eq 2 ];then
        break
      fi
    done
  done
done

Shell多层循环&&利用循环语句输出简单图形_字符串_03

 

 

 

break 后跟数字?表示跳出?层循环

 

#!/bin/bash

for ((i=1; i<=10; i++))
do
  echo "outer loop:$i"
  for ((j=1; j<=5; j++))
  do
    echo "--1st inter loop:$j"
    for ((k=1; k<=3; k++))
    do
      echo "---2nd inter loop:$k"
      if [ $k -eq 2 ];then
        break 2
      fi
    done
  done
done

Shell多层循环&&利用循环语句输出简单图形_字符串_04

 

 

 

输出一行字符串  

#!/bin/bash

for ((i=1; i<=20; i++))
do
  echo -n "*"
done
echo ""

Shell多层循环&&利用循环语句输出简单图形_bash_05

 

 

输出一个由字符串组成的矩形

#!/bin/bash

for ((i=1; i<=10; i++))
do
  for ((j=1; j<=20; j++))
  do
    echo -n "*"
  done
  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_九九乘法表_06

 

 

输出一个空心矩形

#!/bin/bash

for ((i=1;i<=10;i++))
do
  if [ $i -eq 1 -o $i -eq 10 ];then
    for ((j=1;j<=20;j++))
      do
        echo -n "*"
      done
      echo ""

  else
      echo -n "*"
      for ((k=1;k<=18;k++))
      do
        echo -n " "
      done
      echo "*"

  fi
done

Shell多层循环&&利用循环语句输出简单图形_bash_07

 

输出一个三角形 

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=1; j<=i; j++))
  do
    echo -n "*"
  done
  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_bash_08

 

 

输出一个倒三角形  

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=9; j>=i; j--))
  do
    echo -n "*"
  done
  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_g++_09

 

 

输出一个反三角形  

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=9; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=i; k++))
  do
    echo -n "*"
  done
  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_九九乘法表_10

 

输出一个等腰三角形 

方法一

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=9; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=i; k++))
  do
    echo -n "*"
  done
  for ((g=2; g<=i; g++))
  do
    echo -n "*"
  done

  echo ""
done

 

方法二

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=9; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=$[$i*2-1]; k++))
  do
    echo -n "*"
  done

  echo ""
done

  

Shell多层循环&&利用循环语句输出简单图形_字符串_11

 

 

输出一个倒等腰三角形  

#!/bin/bash

for ((i=9; i>=1; i--))
do
  for ((j=9; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=$[$i*2-1]; k++))
  do
    echo -n "*"
  done

  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_字符串_12

 

 

 

输出一个菱形

#!/bin/bash

for ((i=1; i<=9; i++))
do
  for ((j=9; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=$[$i*2-1]; k++))
  do
    echo -n "*"
  done

  echo ""
done

for ((i=10; i<=17; i++))
do
  for ((j=0; j<=$[$i-9]; j++))
  do
    echo -n " "
  done
  for ((k=8; k>=$[$i-9]; k--))
  do
    echo -n "*"
  done
  for ((g=7; g>=$[$i-9]; g--))
  do
    echo -n "*"
  done

  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_bash_13

 

 

输出一个可变大小的菱形  

#!/bin/bash

read -p "enter a variate:" N

for ((i=1; i<=$N; i++))
do
  for ((j=$N; j>=i; j--))
  do
    echo -n " "
  done
  for ((k=1; k<=$[$i*2-1]; k++))
  do
    echo -n "*"
  done

  echo ""
done

for ((i=$[$N+1]; i<=$[$N*2-1]; i++))
do
  for ((j=0; j<=$[$i-$N]; j++))
  do
    echo -n " "
  done
  for ((k=$[$N-1]; k>=$[$i-$N]; k--))
  do
    echo -n "*"
  done
  for ((g=$[$N-2]; g>=$[$i-$N]; g--))
  do
    echo -n "*"
  done

  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_九九乘法表_14

 

 

输出一个平行四边形

#!/bin/bash

for ((i=1; i<=6; i++))
do
  for ((j=1; j<=i; j++))
  do
    echo -n " "
  done
  for ((k=1; k<=6; k++))
  do
    echo -n "*"
  done

  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_九九乘法表_15

 

 

 

输出一个九九乘法表

#!/bin/bash

for i in `seq 9`
do
  for j in `seq 9`
  do
  [ $j -le $i ] && echo -n -e "$i*$j=`echo $(($i*$j))`\t"
  done
  echo ""
done

Shell多层循环&&利用循环语句输出简单图形_bash_16