当前位置: 代码迷 >> 综合 >> Linux中Shell之图形制作--(秘制_三角形,九九乘法表,梯形,菱形)
  详细解决方案

Linux中Shell之图形制作--(秘制_三角形,九九乘法表,梯形,菱形)

热度:23   发布时间:2023-12-15 23:31:42.0

目录

    • 前言
    • 一:制作三角形
    • 二:制作等腰三角形
    • 三:九九乘法表
    • 四:等腰梯形
    • 五:菱形

前言

??shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。下面我们用shell编写一个九九乘法表跟等边三角形,体现一下shell脚本的魅力,希望对你有所帮助哦。

一:制作三角形

#!/bin/bash
read -p "请输入行号:" line    
read -p "请输入符号:" char
a=1                               
while [ $a -le $line ]            
dob=1                          #定义符号初始值while [ $b -le $a ]doecho -n "$char"        #-n 指不换行输出b=`expr $b + 1`doneechoa=`expr $a + 1`
done

输出结果

[root@server1 ~]# ./sanjiao.sh 
请输入行号:5
请输入符号:*
*
**
***
****
*****
[root@server1 ~]# ./sanjiao.sh 
请输入行号:4
请输入符号:#
#
##
###
####

二:制作等腰三角形

#!/bin/bash
read -p "获取行号:" Linefor ((i=1;i<=Line;i++))             #使用行号控制一共循环次数dofor ((k=$Line-$i;k>0;k--))    #定每一行输出的空格,第一行需要输出两个空格,第一行需要输出2个空格,第二行需要输出1个,第三行输出0个空格doecho -n ' 'donefor ((h=1;h<=$((2*$i-1));h++)); #第一行一个*,第二行三个*,当前行号*2-1doecho -n '*'     #输出内容不换行doneecho ''
done
[root@server1 ~]# ./dengsan.sh 
获取行号:8*************************************************
***************

三:九九乘法表

#!/bin/bash
#九九乘法表
i=1
while [ $i -le 9 ]
dofor ((j=1;j<=$i;j++))doecho -en "\t $i x$j =$(( i * j )) "    #\t:制表符donelet i++echo ""
done
[root@server1 ~] ./99.sh 
[root@server1 ~]# ./99chengfa.sh 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*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
#!/bin/bash
for((i=1;i<=9;i++))
do
for((k=1;k<=i;k++))
do
let s=i*k
echo -ne "\t$i*$k=$s"              #\t 为制表符
done
echo ""
done
echo "end"
[root@server1 ~]# ./99chengfa.sh 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8  4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*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

四:等腰梯形

#/bin/bash
for ((i=1;i<=5;i++))
dofor ((j=9;j>=i;j--))doecho -n " "donefor ((n=1;n<=1$i;n++))doecho -n "* "done
echo
done
[root@server1 ~]# sh dengti.sh * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 

五:菱形

#!/bin/bash
read -p "输入菱形半径:" r
for((y=0; y<=2*r; y++))
dofor((x=0; x<=2*r; x++))do#if ((y==-x+r || y==-x+3*r || y==x+r || y==x-r))  空心if ((y>=-x+r && y<=-x+3*r && y<=x+r && y>=x-r))   #实心thenecho -n "*"elseecho -n " "fidoneecho ""
done
[root@server1 ~]# sh ling.sh 
输入菱形半径:3*   ***  ***** 
************ ***  *