Shell脚本画图形

Posted 热心群众

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本画图形相关的知识,希望对你有一定的参考价值。

@toc

1、画直线

for循环画直线

#!/bin/bash
#for循环画直线
for ((i=1;i<=30;i++))
do
   echo -n "-"
done
   echo "" 

while循环画直线

#!/bin/bash
#while循环画直线
a=1
while [ $a -le 30 ]
do
  echo -n "-"
  let a++
done
  echo ""

2、画矩形

for循环画矩形

#!/bin/bash
#for循环画矩形
for ((i=1; i<=5; i++))
do
  for ((j=1; j<=15; j++))
    do
      echo -n "*"
    done
      echo ""
done

空心矩形

#!/bin/bash
#for循环空心矩形
for ((i=1; i<=5; i++))
do
  if [ $i -eq 1 -o $i -eq 5 ]
  then
    for ((j=1; j<=15; j++))
      do
        echo -n "*"
      done
        echo " "
  else
    echo -n "*"
    for ((k=1; k<=13; k++))
      do
        echo -n " "
      done
        echo "*"
  fi
done

3、画三角形

左下直角三角形(for循环)

#!/bin/bash
#左下直角三角形
for ((i=1; i<=8; i++))
  do
    for ((j=1; j<=i; j++))
      do
        echo -n " *"
      done
        echo " "
  done

左下空心直角三角形(for循环)

#!/bin/bash
#左下空心直角三角形
for ((i=1; i<=10; i++))
do
  if [ $i -eq 1 -o $i -eq 10 -o $i -eq 2 ]
  then
    for ((j=1; j<=i; j++))
      do
        echo -n "*"
      done
        echo " "
   else
     echo -n "*"
      for ((k=1; k<=(i-2); k++))
        do
          echo -n " "
        done
          echo  "*"
   fi
done

自定义左下直角三角形(for循环)

#!/bin/bash
#自定义边长的三角形
read -p "输入自定义三角形的边长:" a
for ((i=1; i<=$a; i++))
  do
  for ((j=1; j<=i; j++))
    do
      echo -n " *"
    done
      echo " " 
  done

自定义左下直角三角形(while循环)

#!/bin/bash
#while循环 自定义边长三角形
read -p "输入自定义三角形的边长:" a
i=1
while [ $i -le $a ]
  do
    j=1
    while [ $j -le $i ]
      do
        echo -n " *"
        let j++
      done
        echo " "
   let i++
   done

左上直角三角形(for循环)

#!/bin/bash
#左上直角三角形
for ((i=1; i<=10; i++))
  do
    for ((j=10; j>=i; j--))
      do
        echo -n "*"
      done
        echo " "
  done

自定义左上直角三角形(for循环)

#!bin/bash
#自定义左上直角三角形for循环
read -p "输入三角形边长:" a
for ((i=1; i<=$a; i++))
  do
    for ((j=$a; j>=$i; j--))
      do
        echo -n "*"
      done
        echo " "
  done

自定义左上直角三角形(while循环)

#!/bin/bash
read -p "输入三角形边长:" a
i=1
while [ $i -le $a ]
  do
    j=$a
    while [ $j -ge $i ]
      do
        echo -n "*"
        let j--
      done
  echo " "
  let i++
  done

右下直角三角形(for循环)

#!/bin/bash
#右下直角三角形for循环
for ((a=1;a<=10;a++))
do
#空格倒三角
  for ((b=10;b>=$a;b--))
    do
    echo -n " "
    done

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

自定义右下直角三角形(for循环)

#!/bin/bash
#自定义右下直角三角形for循环
read -p "输入自定义边长:" x
for ((a=1; a<=$x; a++))
do
  for ((b=$x; b>=$a; b--))
  do
    echo -n " "
  done
  for ((c=1; c<=a; c++))
  do
    echo -n "*"
  done
    echo " "
done

自定义右下直角三角形(while循环)

#!/bin/bash
#自定义右下直角三角形while循环
read -p "输入自定义三角形边长:" x
a=1
while [ $a -le $x ]
do
  b=$x
  while [ $b -ge $a ]
  do
    echo -n "-"
    let b--
  done
  c=1
  while [ $c -le $a ]
  do
    echo -n "*"
    let c++
  done
  echo " "
  let a++
done

右上直角三角形(for循环)

#!/bin/bash
#右上直角三角形for
for ((a=1; a<=10; a++))
do
#空格倒三角
  for ((b=1; b<=$a; b++))
  do
  echo -n "#"
  done
  for ((c=10; c>=$a; c--))
  do
  echo -n "*"
  done
echo " "
done

等腰三角形(for循环)

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

自定义等腰三角形(for循环)

#!/bin/bash
#自定义等腰三角形for循环
read -p "输入自定义边长:" x
for ((a=1; a<=$x; a++))
do
  for ((b=$x; b>=$a; b--))
  do
    echo -n " "
  done
  for ((c=1; c<=($a*2-1); c++))
  do
    echo -n "*"
  done
    echo " "
done

自定义等腰三角形(while循环)

#!/bin/bash
#自定义等腰三角形while循环
read -p "输入自定义三角形边长:" x
a=1
while [ $a -le $x ]
do
  b=$x
  while [ $b -ge $a ]
  do
    echo -n " "
    let b--
  done
  c=1
  k=$[($a*2-1)]
  while [ $c -le $k ]
  do
    echo -n "*"
    let c++
  done
  echo " "
  let a++
done

倒等腰三角形(for循环)

#!/bin/bash
#倒等腰三角形
for ((a=10;a>=1;a--))
do
   for ((b=10;b>=$a;b--))
   do
      echo -n " "
   done
   for ((c=1;c<=$[$a*2-1];c++))
   do
      echo -n "*"
   done
   echo " "
done

自定义倒等腰倒三角形(for循环)

#!/bin/bash
#自定义倒等腰三角形for循环
read -p "输入自定义边长:" x
for ((i=1; i<=$x; i++))
do
  for ((j=1; j<=$i; j++))
  do
    echo -n " "
  done
  a=$[($i*2)-1]
  b=$[($x*2)-1]
  for ((k=$b; k>=$a; k--))
  do
    echo -n "*"
  done
    echo " "
done

自定义倒等腰三角形(while循环)

#!/bin/bash
#自定义等腰三角形while循环
read -p "输入自定义边长:" x
i=1
while [ $i -le $x ] 
do
  j=1
  while [ $j -le $i ]
  do
    echo -n " "
    let j++
  done
  a=$[$i*2-1]
  b=$[$x*2-1]
  k=$b
  while [ $k -ge $a ]  
  do
    echo -n "*"
    let k--
  done
    echo " "
    let i++
done

4、菱形

菱形(for循环)

#!/bin/bash
#菱形for循环
for ((a=1;a<=9;a++))
do
  for ((b=9;b>=$a;b--))
  do
     echo -n " "
  done
  for ((c=1;c<=$[$a*2-1];c++))
  do
     echo -n "*"
  done
     echo ""
done
for ((d=1;d<=10;d++))
do
  for ((e=2;e<=$d;e++))
  do
      echo -n " "
  done
  for ((f=10;f>=$d;f--))
  do
      echo -n "*"
  done
  for ((g=9;g>=$d;g--))
  do
      echo -n "*"
  done
 echo ""
done

自定义菱形(for循环)

#!/bin/bash
#自定义菱形for循环
read -p "请输入想要的菱形大小(数字):" n
for((a=1;a<=$n;a++))
do
   for ((b=$n;b>=$a;b--))
   do
      echo -n " "
do
   for ((b=$n;b>=$a;b--))
   do
      echo -n " "
   done
   for ((c=1;c<=$[$a*2-1];c++))
   do
      echo -n "*"
   done
   echo ""
done
for ((i=$n-1;i>=1;i--))
do
   for ((j=$n;j>=$i;j--))
   do
      echo -n " "
   done
   for ((l=1;l<=$[$i*2-1];l++))
   do
      echo -n "*"
   done
   echo ""
done

平行四边形1

#!/bin/bash
#平行四边形1
for ((i=10;i>=1;i--))
do
 for((k=1;k<=i;k++))
 do
   echo -n " "
 done
  for (( j=10;j>=1;j--))
   do
      echo -n " *"
   done
    echo " "
done

平行四边形2

#!/bin/bash
#平行四边形2
for ((i=1;i<=10;i++))
do
 for((k=1;k<=i;k++))
 do
   echo -n "#"
 done
  for (( j=1;j<=10;j++))
   do
      echo -n " *"
   done
    echo " "
done

梯形

#!/bin/bash
#梯形
for ((a=1;a<=8;a++))
do
    for ((b=8;b>=$a;b--))
    do
       echo -n " "
    done
    for ((c=1;c<=8;c++))
    do
       echo -n "*"
    done
    for ((d=1;d<=$[$a*2-1];d++))
    do
       echo -n "#"
    done
    echo " "
done

以上是关于Shell脚本画图形的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

shell 脚本 片段

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

用Python的Turtple画图形

常用python日期日志获取内容循环的代码片段

递归画图形