shell使用*号编写有趣图形

337 阅读1分钟

1. 图形一(矩形)

实心矩形

  • 法一(for循环)
#!/bin/bash
for ((i=1;i<=20;i++))    //使用for外部循环作为矩形的长,长为20
do
  for ((a=1;a<=10;a++))   //使用for内部循环作为矩形的宽,宽为10
  do  
     echo -n "*"    //不换行输出*
  done
  echo   //这里的echo用于换行,因为echo默认会打印换行符
done

image.png

  • 法二(while循环)
#!/bin/bash
i=1
while [ $i -le 10 ]   //使用while外部循环作为矩形的宽,宽为10
do
  a=1
  while [ $a -le 20 ]   //使用while内部循环作为矩形的长,长为20
  do
     echo -n "*"
     let a++
  done
  let i++
  echo 
done

image.png

空心矩形

#!/bin/bash
for ((a=1;a<=9;a++))
do
   for ((i=1;i<=18;i++))
   do
   if [ $a -eq 1 ] || [ $a -eq 9 ];then
       echo -n "*"
   elif [ $i -eq 1 ] || [ $i -eq 18 ];then
      echo -n "*"
   else
       echo -n " "
   fi
   done
   echo 
done

image.png

2.图形二(三角形)

实心直角三角形

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

image.png

空心直角三角形

#!/bin/bash
for ((a=1;a<=9;a++))
do
   for ((i=1;i<=9;i++))
   do
   if [ $a -eq $i ];then
       echo -n "*"
   elif [ $i -eq 1 ];then
      echo -n "*"
   elif [ $a -eq 9 ];then
    echo -n "*"
   else
       echo -n " "
   fi
   done
   echo 
done

image.png

倒直角三角形

#!/bin/bash
for ((i=9;i>=1;i--))   //与正三角正好反向循环
do
   for ((a=1;a<=i;a++))
   do
   echo -n "*"

   done
 echo
done

image.png

反直角三角形

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

image.png

等腰三角形

倒三角+反三角+直角三角

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

image.png

反等腰三角形

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

image.png

3.图形三(菱形)

等腰三角形+反等腰三角形

#!/bin/bash
for ((i=1;i<=9;i++))
do
   for ((a=9;a>=i;a--))
   do
      echo -n " "
   done
   for ((m=1;m<=i;m++))
   do
      echo -n "*"
   done
   for ((n=2;n<=i;n++))
   do
      echo -n "*"
   done
 echo
done
for ((i=8;i>=1;i--))   //
do
   for ((a=9;a>=i;a--))
   do
      echo -n " "
   done
   for ((m=1;m<=i;m++))
   do
      echo -n "*"
   done
   for ((n=2;n<=i;n++))
   do
      echo -n "*"
   done
 echo
done

image.png

4.图形四(平行四边形)

倒三角+反三角+倒三角

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

image.png

5.图形五(梯形)

直角梯形

矩形+直角三角形

#!/bin/bash
for ((i=1;i<=10;i++))
do
  for ((a=1;a<=20;a++))
  do
     echo -n "*"
  done
   for ((n=1;n<=i;n++))
   do
   echo -n "*"

   done
 echo
done

image.png

等腰梯形

反直角三角形+直角梯形

#!/bin/bash
for ((i=1;i<=9;i++))
do
   for ((a=9;a>=i;a--))
   do
   echo -n " "
   done
   for ((m=1;m<=i;m++))
   do
   echo -n "*"
   done
  for ((n=1;n<=20;n++))
  do
     echo -n "*"
  done
   for ((s=1;s<=i;s++))
   do
   echo -n "*"

   done
 echo
done

image.png