shell脚本--九九乘法表、直角三角形、等腰三角形、菱形

文章目录

    • 九九乘法表
    • 直角三角形
    • 倒直角三角形
    • 等腰三角形
    • 菱形

九九乘法表

分析:
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

行 i=1 i++ i=2 外层

列 j=1 j<=i j++ 内层

外层循环执行一次 内存循环执行一遍

[root@localhost opt]# vim jiujiu02.sh

#!/bin/bash
#九九乘法表
#外层循环表示行
for ((i=1;i<=9;i++))
do
  #内层循环表示列
  for ((j=1;j<=i;j++))
  do
    echo -ne  "${i}x${j}=$[$i*$j]\t"    '-n代表不换行,默认是换行的,-e:识别特殊字符,后面可以带转义符;\t:制表符'
  done
  echo ""
done

[root@localhost opt]# sh jiujiu02.sh
1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81

直角三角形

[root@localhost opt]# vim zhijiao.sh 

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

[root@localhost opt]# sh zhijiao.sh
*
**
***
****
*****

倒直角三角形

[root@localhost opt]# vim daozhijiao.sh
#!/bin/bash
read -p "输入等腰倒直角三角的边长:" n
for ((i=1;i<=$n;i++))
do
  for ((j=$n;j>=i;j--))
  do
    echo -n "* "
  done
  echo ""
done
[root@localhost opt]# sh daozhijiao.sh 
输入等腰倒直角三角的边长:9
* * * * * * * * * 
* * * * * * * * 
* * * * * * * 
* * * * * * 
* * * * * 
* * * * 
* * * 
* * 
* 

等腰三角形

分析
#####&
####&&&
###&&&&&
##&&&&&&&
#&&&&&&&&&

1 1
2 3
3 5
4 7
5 9

i<=2*1-1

[root@localhost opt]# vim dengyao.sh
#!/bin/bash
#行
for ((i=1;i<=5;i++))
do
  #倒直角三角形
  for ((j=5;j>=i;j--))
  do
    echo -n " "
  done
  #等腰三角形
  for ((k=1;k<=2*i-1;k++))
  do
    echo -n "*"
  done
  echo ""
done
[root@localhost opt]# sh dengyao.sh
     *
    ***
   *****
  *******
 *********

菱形

分析
#####&
####&&&
###&&&&&
##&&&&&&&
#&&&&&&&&&
##&&&&&&&
###&&&&&
####&&&
#####&

1 1
2 3
3 5
4 7
5 9

6 7
7 5
8 3
9 1

i<=21-1
n=2
(9-i)+1

[root@localhost opt]# vim lingxin.sh 
#!/bin/bash
#行
for ((i=1;i<=5;i++))
do
  #倒直角三角形
  for ((j=5;j>=i;j--))
  do
    echo -n " "
  done
  #等腰三角形
  for ((k=1;k<=2*i-1;k++))
  do
    echo -n "*"
  done
  echo ""
done
for ((i=6;i<=9;i++))
do
  #正直角三角形
  for ((m=1;m<=i-4;m++))
  do
    echo -n " "
  done
  #等腰倒直角三角形
  for ((n=2*(9-i)+1;n>=1;n--))
  do
    echo -n "*"
  done
  echo ""
done

[root@localhost opt]# sh lingxin.sh 
     *
    ***
   *****
  *******
 *********
  *******
   *****
    ***
     *

你可能感兴趣的:(shell脚本,shell,bash,centos,经验分享)