循环实操(2)双循环 三角形、平行四边形、梯形、菱形、输出环境变量PATH所包含的所有目录以及其中的所有可执行文件


双循环,两层for循环 外循环执行一次内循环执行一遍
外循环次数决定内循环执行遍数。

1、靠左的直角三角形

在这里插入图片描述

#!/bin/bash\

for ((a=1; a<=9; a++))   #9行
do
  for ((b=1; b<=$a; b++))   
  do
     echo -n "*"

  done 
  echo " "
done

2、靠右的直角三角形

在这里插入图片描述

#!/bin/bash

for ((a=1; a<=9; a++))
do
  #输出空倒三角
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done
  
  for ((c=1; c<=$a; c++))
  do
    echo -n "*"
  done
  echo " "
done

3、等腰三角形

在这里插入图片描述

#!/bin/bash
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done
 
i=$[($a*2)-1]
  for ((h=1; h<=$i; h++))
  do
    echo -n "*"
  done
  echo " "
done

4、平行四边形

在这里插入图片描述

#!/bin/bash
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done
  
  for ((c=1; c<=9; c++))
  do
    echo -n "*"
  done
  echo " "
 
done

5、梯形

在这里插入图片描述

方法一:平行四边形后加*

在这里插入图片描述

#!/bin/bash
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done

  for ((c=1; c<=9+$a; c++))
  do
    echo -n "*"
  done
  
  echo " "
done

方法二:在平行四边形基础上加三角形

在这里插入图片描述

#!/bin/bash
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done

  for ((c=1; c<=9; c++))
  do
    echo -n "*"
  done
  for ((d=1; d<=$a; d++))
  do
    echo -n "*"
done
  echo " "
done

6、等腰梯形

在这里插入图片描述

#!/bin/bash
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n " "
  done

  for ((c=1; c<=9+$a; c++))
  do
    echo -n "*"
  done

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

7、菱形

在这里插入图片描述

方法一:

#!/bin/bash
#上三角
for ((a=1; a<=9; a++))
do
  for ((b=9; b>=$a; b--))
  do
    echo -n  " "
  done
  
  i=$[($a*2)-1]
  for ((c=1; c<=$i; c++))
  do
    echo -n "*"
  done
  echo " "
done

#下三角
for ((a=1; a<=8; a++))
do
  for ((b=0; b<=$a; b++))
  do
    echo -n " "
  done

  i=$[17-$a*2]        #17是上下加起来总行数
  for ((c=1; c<=$i; c++))
  do
    echo -n "*"
  done
  echo " "
done

方法二:

在这里插入图片描述

#!/bin/bash
#上面的三角形
read -p "请输入一个奇数来建立菱形:" z
y=$[z/2]
x=$[y+1]
for ((a=1;a<=x;a++))   #行数
do
  for ((b=y; b>=a;b--))  #列数
  do
    echo -n " "
  done
  i=$[($a*2)-1]
  for ((c=1;c<=i;c++))   #列数
  do
    echo -n "*"
  done
  echo " "
done
#下面的三角形
for ((a=1; a<=y; a++))
do
  for ((b=1; b<=a; b++))
  do
    echo -n " "
  done
  i=$[z-2*$a]
  for ((c=1; c<=i; c++))
  do
    echo -n "*"
  done

  echo " "
done

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

在这里插入图片描述

#!/bin/bash
IFS=$IFS':'
IFS=':'
for i in $PATH
do
  echo "环境变量PATH包含的所有目录:$i"
  for f in $i/*
  do 
    if [ -x $f ]
    then
      echo "具有执行权限的文件:$f"
    fi
  done
done

猜你喜欢

转载自blog.csdn.net/weixin_51616026/article/details/111476873