教你一个小知识点--用shell画图形

常用的命令

echo -n :不换行输出
echo -e:支持反斜杠控制的字符转换
转义:
\a:发出警告声
\b:删除前一个字符
\c:最后不加上换行符号
\f:换行但光标仍旧停留在原来的位置
\n:换行且光标移至行首
\r:光标移至行首,但不换行
\t:插入tab
\v:与\f相同
\:插入\字符
\nnn:掺入nnn(八进制)所代表的ASCII字符

seq的用法
seq 10 #起始默认是1,间隔默认是1,输出的结果(1-10)
seq 2 10 #起始值是2,间隔默认是1,输出的结果(2-10)
seq 1 3 10 #起始值是1,间隔默认是3,输出的结果:1 4 7 10

正方形图形

[root@server6 ~]# vim zf.sh
#!/bin/bash
# 正方形图形
for (( j=1;j<=5;j++ ))
do
for (( i=1;i<=5;i++ ))

do
        echo -n "* "
done
        echo
done

[root@server6 ~]#chmod +x zf.sh 
[root@server6 ~]# ./zf.sh 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 

长方形图形

[root@server6 ~]#vim zf.sh
#!/bin/bash
# 正方形图形
for (( j=1;j<=7;j++ ))
do
for (( i=1;i<=5;i++ ))

do
        echo -n "* "
done
        echo
done
[root@server6 ~]#chmod +x zf.sh 
[root@server6 ~]#./zf.sh 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * * 

三角形

直角三角形(第一种)

#!/bin/bash
# 三角形图形

for ((j=1;j<=7;j++))
do
for ((i=1;i<=$j;i++))

do
        echo -n "*"
done
        echo
done

[root@server6 ~]#chmod +x zf.sh 
[root@server6 ~]#./zf.sh 
*
**
***
****
*****
******

直角三角形(第二种)

[root@server6 ~]#vim zj.sh

#!//bin/bash
# 直角三角形
for ((i=1;i<=9;i++))
do
        for ((j=1;j<$i;j++))
        do      
                echo -n " "
        done
        for ((k=10-$j;k>0;k--))
do
        echo -n "*"
done
        echo
done
[root@server6 ~]#chmod +x zj.sh 
[root@server6 ~]#./zj.sh 
*********
 ********
  *******
   ******
    *****
     ****
      ***
       **
        *

等腰三角形

[root@server6 ~]#vim dysj.sh
#!/bin/bash
# 等腰三角形
for ((i=1;i<10;i++))
do
        for ((j=10;j>=i;j--))
do
        echo -n " "
done
        for ((k=1;k<=i;k++))
do
        echo -n "* "
done
        echo
done
[root@server6 ~]#chmod +x dysj.sh 
[root@server6 ~]#./dysj.sh 
          * 
         * * 
        * * * 
       * * * * 
      * * * * * 
     * * * * * * 
    * * * * * * * 
   * * * * * * * * 
  * * * * * * * * * 

菱形

[root@server6 ~]#vim lx.sh
#!/bin/bash
# 菱形
read -p "输入菱形长度:" len
for i in `seq 1 $len`
do
        for ((j=$len-1;j>=$i;j--))
do
        echo -n " "
done
        for ((m=1;m<=$i;m++))
do
        echo -n "* "
done
        echo
done
for i in `seq 1 $len`
do
for ((j=1;j<=$i;j++))
do
        echo -n " "
done
        for ((n=$len-1;n>=$i;n--))
do
        echo -n "* "
done
echo
done
[root@server6 ~]#chmod +x lx.sh 
[root@server6 ~]#./lx.sh 
输入菱形长度:5
    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 

9*9乘法口诀表

第一种乘法口诀表

[root@server6 ~]#vim xfkj.sh
#!/bin/bash
# 乘法口诀表
for ((i=1;i<=9;i++))
do
        for ((j=1;j<=i;j++))
do
        echo -ne "$i*$i=$((i*i)) \t"
done
echo
done
[root@server6 ~]#chmod +x xfkj.sh 
[root@server6 ~]#./xfkj.sh 
1*1=1 	
2*2=4 	2*2=4 	
3*3=9 	3*3=9 	3*3=9 	
4*4=16 	4*4=16 	4*4=16 	4*4=16 	
5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	
6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	
7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	
8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	
9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=8

乘法口诀表(第二种)

[root@server6 ~]#vim xfkj.sh
#!/bin/bash
# 乘法口诀表
for ((i=1;i<=9;i++))
do
        for ((j=1;j<=9;j++))
do
        echo -ne "$i*$i=$((i*i)) \t"
done
echo
done
[root@server6 ~]#chmod +x xfkj.sh 
[root@server6 ~]#./xfkj.sh 
1*1=1 	1*1=1 	1*1=1 	1*1=1 	1*1=1 	1*1=1 	1*1=1 	1*1=1 	1*1=1 	
2*2=4 	2*2=4 	2*2=4 	2*2=4 	2*2=4 	2*2=4 	2*2=4 	2*2=4 	2*2=4 	
3*3=9 	3*3=9 	3*3=9 	3*3=9 	3*3=9 	3*3=9 	3*3=9 	3*3=9 	3*3=9 	
4*4=16 	4*4=16 	4*4=16 	4*4=16 	4*4=16 	4*4=16 	4*4=16 	4*4=16 	4*4=16 	
5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	5*5=25 	
6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	6*6=36 	
7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	7*7=49 	
8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	8*8=64 	
9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 	9*9=81 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值