简介
shell示例总结。
shell脚本示例
示例1:实现以下输出
请输入姓名:111
请输入年龄:222
请输入性别:333
你的基本信息如下:
姓名: 111
年龄:222
性别:333
代码:
#!/bin/bash
read -p "请输入姓名:" name
read -p "请输入年龄:" age
read -p "请输入性别:" sex
*************************************
cat<<eof
你的基本信息如下:
姓名:$name
年龄:$age
性别:$sex
*************************************
eof
示例2 :检查目录是否存在,请输入目录
代码:
#!/bin/bash
read -p "请输入目录:" dic
if ls $dic > /dev/null 2>&1;then
echo "$dic is exist"
else
echo "$dic is not exist"
fi
示例3:判断用户在系统中是否存在,是否有家目录
代码:
#!/bin/bash
read -p "请输入用户名:" username
if grep $username /etc/passwd >/dev/null 2>&1;then
echo "the user $username is exist"
elif ls -d /home/$username >/dev/null 2>&1;then
echo "the user $username has home"
else
echo "the user $username is not exist"
echo "the user $username has not home"
fi
示例4:两个整数是否相等
代码:
#!/bin/bash
read -p "请输入第一个整数:" aa
read -p "请输入第二个整数:" bb
if [ $aa -eq $bb ];then
echo "$aa 等于 $bb"
else
echo "$aa 不等于 $bb"
fi
示例5:比较两个整数
代码:
#!/bin/bash
read -p "请输入第一个整数:" aa
read -p "请输入第二个整数:" bb
if [ $aa -gt $bb ];then
echo "$aa > $bb"
elif [ $aa -lt $bb ];then
echo "$aa < $bb"
else
echo "$aa = $bb"
fi
示例6:根据用户名判断是否是超级管理员
代码:
#!/bin/bash
read -p "请输入用户名:" u
if [ $u == "root" ];then
echo "$u is superadministrator"
else
echo "$u is not superadministrator"
fi
示例7:清空日志/var/log/messages
代码:
#!/bin/bash
if [ ! $user == "root" ];then
echo "脚本执行需要管理员"
exit 10
fi
if [ ! -f /var/log/messages ];then
echo "日志文件不存在"
exit 11
fi
tail -n 100 /var/log/messages > /var/log/messages.tmp
> /var/log/messages
mv /var/log/messages.tmp /var/log/messages
echo "logs clean up"
示例8:输入的文件是目录还是文件,都不是输出其他
代码:
#!/bin/bash
read -p "please input file:" file
if [ -z $file ];then
echo "Error,please input a filename!"
elif [ -f $file ];then
echo "$file file is file!"
elif [ -d $file ];then
echo "$file is directory!"
elif [ ! -e $file ];then
echo "your input is not file!"
else
echo "$file is other!"
fi
示例9:根据学生的成绩判断学生的优劣,四种成绩:补考、良好、好、优秀
代码:
#!/bin/bash
read -p "请输入你的成绩:" cj
if [ $cj -ge 0 ] && [ $cj -le 59 ];then
echo "补考"
elif [ $cj -ge 60 ] && [ $cj -le 70 ];then
echo "良好"
elif [ $cj -ge 71 ] && [ $cj -le 85 ];then
echo "好"
elif [ $cj -ge 86 ] && [ $cj -le 100 ];then
echo "优秀"
else
echo "请输入0-100之间"
fi
示例10:每周一晚上 3:00 ,备份数据库服务器上 webdb 库的所有数据到系统的/mysqlbak 目录里,使 用系统日期做备份文件名
代码:
#!/bin/bash
bakfilename=`date +%F`
bakdir=/mysqlbak
bakuser=root
bakpasswd=12345
bakdbname=webdb
[ -e $bakdir ]||mkdir $bakdir
mysqldump -u$bakuser -p$bakpasswd -flush-logs $bakdbname >$bakdir/${bakfilename}-webdb.sql
[root@mail ~]# crontab -e
0 3 * * 1 /root/test/mysqlbak.sh