shell的图形脚本

一 制作三角形

[root@localhost ~]# vim sh.sh

#!/usr/bin/bas
read -p "请输入行号:" line
read -p "请输入符号:" char
a=1
while [ $a -le $line ]            
do
     b=1
     while [ $b -le $a ]
     do
           echo -n "$char"        
           b=`expr $b + 1`
     done
     echo
     a=`expr $a + 1`
done

输出结果

[root@localhost ~]# vim sh.sh
[root@localhost ~]# bash sh.sh
请输入行号:12   
请输入符号:7
7
77
777
7777
77777
777777
7777777
77777777
777777777
7777777777
77777777777
777777777777

二 制作等腰三角形

[root@localhost ~]# vim hh.sh

#!/bin/bash
read -p "获取行号:" Line
  for ((i=1;i<=Line;i++))
  #使用行号控制一共循环次数
    do
      for ((k=$Line-$i;k>0;k--))
  #定每一行输出的空格,第一行需要输出两个空格,第一行需要输出2个空格,第二行需要输出1个,第三行输出0个空格
      do
          echo -n ' '
      done
      for ((h=1;h<=$((2*$i-1));h++));
  #第一行一个*,第二行三个*,当前行号*2-1
      do
          echo -n '*'     
      done
 echo ''
done

输出结果

[root@localhost ~]# vim hh.sh
[root@localhost ~]# bash hh.sh
获取行号:1
*
[root@localhost ~]# bash hh.sh
获取行号:10
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

三:九九乘法表

[root@localhost ~]# vim aa.sh

#!/bin/bash
#九九乘法表
i=1
while [ $i -le 9 ]
do
  for ((j=1;j<=$i;j++))
  do
  echo -en "\t $i x$j =$(( i * j )) "    #\t:制表符
  done
  let i++
  echo ""
done

输出结果

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

四 等腰梯形

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

输出结果

[root@localhost ~]# bash ab.sh
         * * * * * * * * * * * 
        * * * * * * * * * * * * 
       * * * * * * * * * * * * * 
      * * * * * * * * * * * * * * 
     * * * * * * * * * * * * * * * 

五:菱形

[root@localhost ~]# vim 菱形.sh

read -p "输入菱形半径:" r
for((y=0; y<=2*r; y++))
do
     for((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))   #实心
     then
       echo -n "*"
     else
       echo -n " "
    fi
   done
    echo ""
done

输出结果

[root@localhost ~]# bash 菱形.sh
输入菱形半径:11
           *           
          ***          
         *****         
        *******        
       *********       
      ***********      
     *************     
    ***************    
   *****************   
  *******************  
 ********************* 
***********************
 ********************* 
  *******************  
   *****************   
    ***************    
     *************     
      ***********      
       *********       
        *******        
         *****         
          ***          
           *        

六、每2秒跟ntp服务器同步一下系统时间,同步失败立即给管理员发邮件,同步成功每2次才给管理员发一次邮件

#!/bin/bash
这是同步服务器的脚本
grep "793085224" /etc/mail.rc &>/dev/null
if [ $? != 0 ];then
yum -y install mailx
 echo -e -n "set bsdcompat \n set from=793085224@qq.com \n set smtp=smtp.qq.com \n set smtp-auth-user=793085224@qq.com \n set smtp-auth-password=dhleyzcaiuuibbbb \n set smtp-auth=login " >> /etc/mail.rc
fi
ntpnum=1
while true
 do
 echo "第$ntpnum次 正在尝试同步时间服务器"[[[
 ntpdate 192.168.0.20 &>/dev/null
 if [ $? = 0 ];then    等于0则成功,不等于0则失败
  echo "同步成功!!"
 else
   echo "同步失败"
   
   if [ $((ntpnum%2)) -eq 0 ];then
   echo "已连续2次同步失败,正在通过邮箱告知管理员,邮件发送中......"
   echo  "Ip:192.168.1.21  error:无法同步时间,请检查你的服务器" | mail -s " title" 18332288915@139.com
   echo "邮件发送完成"
  fi
   let ntpnum++
fi
done
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值