Use shell scripts to make nine-nine-nine multiplication tables and various graphs
Article Directory
One, ninety-nine multiplication table
You can use the sh -x script name to enter the debugging mode to view its calculation method and layout details
[root@localhost ~]#vim 99cfb.sh
[root@localhost ~]#cat 99cfb.sh
#!/bin/bash
for ((a=1;a<=9;a++))
do
for ((b=1;b<=$a;b++))
do
c=$[$a*$b]
echo -n -e "$a*$b=$c\t"
done
echo ""
done
[root@localhost ~]#chmod +x 99cfb.sh
[root@localhost ~]#./99cfb.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
Two, straight line
[root@localhost ~]#vim zhixian.sh
[root@localhost ~]#cat zhixian.sh
#!/bin/bash
for ((a=1;a<=10;a++))
do
echo -n "*"
done
echo ""
[root@localhost ~]#chmod +x zhixian.sh
[root@localhost ~]#./zhixian.sh
**********
Three, rectangle
[root@localhost ~]#cat juxing.sh
#!/bin/bash
for ((a=1;a<=3;a++))
do
for ((b=1;b<=10;b++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]#chmod +x juxing.sh
[root@localhost ~]#./juxing.sh
**********
**********
**********
Four, three kinds of right-angled triangles
1. Right triangle on the left
[root@localhost ~]#vim kzzjsjx.sh
[root@localhost ~]#cat kzzjsjx.sh
#!/bin/bash
for ((a=1;a<=8;a++)) #输出行数,8行
do
for ((b=1;b<=a;b++)) #输出直线的*,每行随a值增加而增加
do
echo -n "*"
done
echo ""
done
[root@localhost ~]#chmod +x kzzjsjx.sh
[root@localhost ~]#./kzzjsjx.sh
*
**
***
****
*****
******
*******
********
2. Right-angled triangle
[root@localhost ~]#cat kyzjsjx.sh
#!/bin/bash
for ((a=1;a<=8;a++))
do
for ((i=8;i>=a;i--))
do
echo -n " "
done
for ((b=1;b<=a;b++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]#./kyzjsjx.sh
*
**
***
****
*****
******
*******
********
3. Invert a right triangle to the left
[root@localhost ~]#vim kzdzjsjx.sh
[root@localhost ~]#cat kzdzjsjx.sh
#!/bin/bash
for ((a=1;a<=8;a++))
do
for ((b=8;b>=$a;b--))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]#chmod +x kzdzjsjx.sh
[root@localhost ~]#./kzdzjsjx.sh
********
*******
******
*****
****
***
**
*
Five, isosceles triangle
1. Output an odd number of asterisks through the output empty inverted triangle sum algorithm ($a*2-1)
[root@localhost ~]#vim dysjx.sh
[root@localhost ~]#cat dysjx.sh
#!/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
[root@localhost ~]#chmod +x dysjx.sh
[root@localhost ~]#./dysjx.sh
*
***
*****
*******
*********
***********
*************
***************
*****************
2. Splicing method
The space inverted triangle fits the right triangle and then the left triangle
[root@localhost ~]#vim pjdysjx.sh
[root@localhost ~]#cat pjdysjx.sh
#!/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
for ((d=2;d<=a;d++))
do
echo -n "*"
done
echo
done
[root@localhost ~]#chmod +x pjdysjx.sh
[root@localhost ~]#./pjdysjx.sh
*
***
*****
*******
*********
***********
*************
***************
*****************
3. Inverted isosceles triangle
[root@localhost ~]#vim ddysjx.sh
[root@localhost ~]#cat ddysjx.sh
#!/bin/bash
for ((a=1;a<=6;a++))
do
for ((b=1;b<=a;b++))
do
echo -n " "
done
i=$[$a*2-1]
for ((c=11;c>=$i;c--))
do
echo -n "*"
done
echo " "
done
[root@localhost ~]#chmod +x ddysjx.sh
[root@localhost ~]#./ddysjx.sh
***********
*********
*******
*****
***
*
Six, parallelogram
[root@localhost ~]#vim pxsb.sh
[root@localhost ~]#cat pxsb.sh
#!/bin/bash
for ((a=1; a<=6; a++))
do
#输出空倒三角
for ((b=6; b>=$a; b--))
do
echo -n " "
done
#输出直线
for ((c=1; c<=12; c++))
do
echo -n "*"
done
echo ""
done
[root@localhost ~]#chmod +x pxsb.sh
[root@localhost ~]#./pxsb.sh
************
************
************
************
************
************
Seven, trapezoid
1. Anti-right-angle trapezoid
[root@localhost ~]#cat tx.sh
#!/bin/bash
for ((a=1;a<=9;a++))
do
for ((b=9;b>=a;b--))
do
echo -n " "
done
for ((c=1;c<=$[$a+5];c++))
do
echo -n "*"
done
echo
done
[root@localhost ~]#chmod +x tx.sh
[root@localhost ~]#./tx.sh
******
*******
********
*********
**********
***********
************
*************
**************
2. Right angle trapezoid
[root@localhost ~]#vim zjtx.sh
[root@localhost ~]#cat zjtx.sh
#!/bin/bash
for ((a=1;a<=10;a++))
do
for ((c=1;c<=$[$a+5];c++))
do
echo -n "*"
done
echo
done
[root@localhost ~]#chmod +x zjtx.sh
[root@localhost ~]#./zjtx.sh
******
*******
********
*********
**********
***********
************
*************
**************
***************
3.Isosceles trapezoid
[root@localhost ~]#vim dytx.sh
[root@localhost ~]#cat dytx.sh
#!/bin/bash
for ((a=5;a<=10;a++)) #定义行数,a=5掐掉头
do
for ((b=10;b>=a;b--)) #输出空倒三角形
do
echo -n " "
done
i=$[$a*2-1]
for ((c=1;c<=i;c++)) #输出直线
do
echo -n "*"
done
echo
done
[root@localhost ~]#chmod +x dytx.sh
[root@localhost ~]#./dytx.sh
*********
***********
*************
***************
*****************
*******************
Eight, rhombus
[root@localhost ~]#vim lx.sh
[root@localhost ~]#cat lx.sh
#!/bin/bash
for ((a=1;a<=10;a++)) #输出行数
do
for ((b=10;b>=a;b--)) #输出空倒三角
do
echo -n " "
done
i=$[$a*2-1]
for ((c=1;c<=i;c++)) #输出正等腰三角
do
echo -n "*"
done
echo
done
for ((p=2;p<=10;p++)) #输出行数
do
for ((q=1;q<=p;q++)) #输出空正三角
do
echo -n " "
done
h=$[$p*2-1]
for ((w=19;w>=$h;w--)) #输出倒等角三角
do
echo -n "*"
done
echo
done
[root@localhost ~]#chmod +x lx.sh
[root@localhost ~]#./lx.sh
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*
Use sh -v script name to view output details
[root@localhost ~]#sh -v lx.sh
#!/bin/bash
for ((a=1;a<=10;a++)) #输出行数
do
for ((b=10;b>=a;b--)) #输出空倒三角
do
echo -n " "
done
i=$[$a*2-1]
for ((c=1;c<=i;c++)) #输出正等腰三角
do
echo -n "*"
done
echo
done
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
for ((p=2;p<=10;p++)) #输出行数
do
for ((q=1;q<=p;q++)) #输出空正三角
do
echo -n " "
done
h=$[$p*2-1]
for ((w=19;w>=$h;w--)) #输出倒等角三角
do
echo -n "*"
done
echo
done
*****************
***************
*************
***********
*********
*******
*****
***
*