for循环经典案例

99乘法表

for

  • 内循环是进行横向迭代
  • echo " "输出空值得到换行符,从而使内循环每次执行完后即换行
[root@localhost ~]# ./1.sh 
1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
[root@localhost ~]# vim 1.sh

#!/bin/bash
for ((q=1;q<=9;q++))
do
  for ((w=1;w<=$q;w++))
  do
  e=$[$q*$w]
  echo -n -e "$q*$w=$e\t"


  done
  echo ""

done

while

[root@localhost ~]# ./2.sh 
1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	
4*1=4	4*2=8	4*3=12	4*4=16	
5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
[root@localhost ~]# vim 2.sh

#!/bin/bash
q=1

while [ $q -lt 10 ]
do

  w=1
  while [ $w -le $q  ]
  do
   e=$[$q*$w]
   echo -n -e "$q*$w=$e\t"
   let w++
  done
  echo ""
let q++
done

输出环境变量PATH所包含的所有目录以及其中的所有可执行文件

[root@localhost ~]# cd /usr/bin/
[root@localhost bin]# ll -a zsoelim
lrwxrwxrwx. 1 root root 6 32 14:01 zsoelim -> soelim
[root@localhost bin]# ll -a xzcmp
lrwxrwxrwx. 1 root root 6 32 14:01 xzcmp -> xzdiff
[root@localhost bin]# cd ~
[root@localhost ~]# ./0.sh 
/usr/local/sbin
......
......
......
   vigr
/usr/bin
   apropos
......
......
......
   xzcat
   xzcmp
   xzegrep
   xzfgrep
   ypdomainname
   zsoelim
/root/bin

[root@localhost ~]# vim 0.sh

#!/bin/bash

q=1

while [ $q -lt 6 ]
do
  num=`echo $PATH | cut -d ":" -f $q`
  echo $num

  ls $num 2> /dev/null | while read line
  do

    if [ -h $num/$line ]
    then
    echo "   $line"
    fi
  done
let q++
done

输出一条以*表示的直线

[root@localhost ~]# ./3.sh 
********************
[root@localhost ~]# vim 3.sh

#!/bin/bash

for i in {
    
    1..20}

do
  echo -n "*"




done
echo ""

输出长为20 宽为5的矩形

[root@localhost ~]# ./5.sh 
********************
********************
********************
********************
********************
[root@localhost ~]# vim 5.sh

#!/bin/bash

for ((q=1;q<=5;q++))
do

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

echo ""
done

输出直角三角形

[root@localhost ~]# ./6.sh 
*
**
***
****
*****
******
*******
********
*********
**********
[root@localhost ~]# vim 6.sh

#!/bin/bash

for ((q=1;q<=10;q++))
do

   for ((w=1;w<=$q;w++))
   do
     echo -n "*"
   done

echo ""

输出为倒直角三角形

表达式一

[root@localhost ~]# ./7.sh 
**********
*********
********
*******
******
*****
****
***
**
*
[root@localhost ~]# vim 7.sh

#!/bin/bash

for ((q=10;q>=1;q--))
do

   for ((w=1; w<=$q; w++))
   do
     echo -n "*"
   done

echo ""
done

表达式二

[root@localhost ~]# ./11.sh 
**********
*********
********
*******
******
*****
****
***
**
*
[root@localhost ~]# vim 11.sh

#!/bin/bash

for ((q=1;q<=10;q++))
do

  for ((w=10;w>=$q;w--))
  do
    echo -n "*"
  done

echo ""
done

输出直角在右边的直角三角形

[root@localhost ~]# ./8.sh 
*
**
***
****
*****
******
*******
********
*********
**********
[root@localhost ~]# vim 8.sh

#!/bin/bash

for ((q=1;q<=10;q++))
do

   for ((w=10;w>=$q;w--))
   do
     echo -n ""
   done
   for ((e=1;e<=$q;e++))
   do
     echo -n "*"
   done

echo ""
done

输出等腰三角形

表达式一

[root@localhost ~]# ./9.sh 
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************
[root@localhost ~]# vim 9.sh

#!/bin/bash

for ((q=1; q<=10; q++))
do

  for ((w=10; w>=$q; w--))
  do
    echo -n " "
  done
  for ((e=1; e<=$q; e++))
  do
    echo -n "*"
  done
  for ((r=2; r<=$q; r++))
  do
    echo -n "*"
  done

echo ""
done

表达式二

[root@localhost ~]# ./10.sh 
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************
[root@localhost ~]# vim 10.sh

#!/bin/bash

for ((q=1;q<=10;q++))
do
  for ((w=10;w>=$q;w--))
  do
    echo -n " "
  done
  s=$[($q*2)-1]
  for ((e=1;e<=$s;e++))
  do
    echo -n "*"
  done
  echo ""
done

输出倒等腰三角形

[root@localhost ~]# ./4.sh 
 *******************
  *****************
   ***************
    *************
     ***********
      *********
       *******
        *****
         ***
          *
[root@localhost ~]# vim 4.sh

#!/bin/bash





for ((q=1;q<=10;q++))
do
  for ((w=1;w<=$q;w++))
  do
     echo -n " "
  done
  for ((e=10;e>=$q;e--))
  do
     echo -n "*"
  done
  for ((r=9;r>=$q;r--))
  do
    echo -n "*"
  done
  echo ""
done

输出菱形

[root@localhost ~]# ./12.sh 
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************
 *****************
  ***************
   *************
    ***********
     *********
      *******
       *****
        ***
         *
[root@localhost ~]# vim 12.sh

#!/bin/bash

#!/bin/bash

for ((q=1;q<=9;q++))
do
  for ((w=10;w>$q;w--))
  do
    echo -n " "
  done
  s=$[($q*2)-1]
  for ((e=1;e<=$s;e++))
  do
    echo -n "*"
  done
  echo ""
done

for ((q=10;q>=1;q--))
do
  for ((w=9;w>=$q;w--))
  do
    echo -n " "
  done
  for ((e=1;e<=$q;e++))
  do
    echo -n "*"
  done
  for ((r=2;r<=$q;r++))
  do
    echo -n "*"
  done

  echo ""
done

输出平行四边形

[root@localhost ~]# ./13.sh 
 ******
  ******
   ******
    ******
     ******
      ******
[root@localhost ~]# vim 13.sh

#!/bin/bash

for ((q=1;q<=6;q++))
do
  for ((w=1;w<=$q;w++))
  do
    echo -n " "
  done

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

输出梯形

[root@localhost ~]# ./15.sh 
      *******
     ********
    *********
   **********
  ***********
 ************
[root@localhost ~]# vim 15.sh

#!/bin/bash

for ((q=1;q<=6;q++))
do
  for ((w=6;w>=$q;w--))
  do
    echo -n " "
  done

  for ((e=1;e<=6+$q;e++))
  do
    echo -n "*"
  done

  echo ""
done

输出等腰梯形

[root@localhost ~]# ./14.sh 
      ********
     **********
    ************
   **************
  ****************
 ******************
[root@localhost ~]# vim 14.sh

#!/bin/bash

for ((q=1;q<=6;q++))
do
  for ((w=6;w>=$q;w--))
  do
    echo -n " "
  done

  for ((e=1;e<=6+$q;e++))
  do
    echo -n "*"
  done

  for ((r=1;r<=$q;r++))
  do
    echo -n "*"
  done
  echo ""
done

猜你喜欢

转载自blog.csdn.net/TaKe___Easy/article/details/114594454