一 制作三角形
[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