1. 实验一
检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限
#!/bin/bash
ls /root/test.sh &> /dev/null //查看是否有/root/test.sh文件
if [ $? -eq 0 ];then //上一条执行结果$?返回值等于0的话,文件存在,否则不存在
echo "文件存在"
/root/test.sh &> /dev/null //绝对执行这个文件
if [ $? -eq 0 ];then //上一条执行结果$?返回值等于0的话,文件有权限,否则没有
echo "有执行权限"
else
echo "没有执行权限"
fi
else
echo "文件不存在"
fi
- 执行结果
2.实验二
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
#!/bin/bash
read -p "请输入100米赛跑秒数:" num //输入提示信息,定义一个变量num
if [ $num -le 10 ] && [ $num -gt 0 ];then //如果num小于10并且大于0,输出晋级
echo "晋级"
read -p "请输入性别(男、女):" sex //输入提示信息,定义变量sex
if [ $sex == 男 ];then //如果变量字符串等于男,进入男生组
echo "恭喜进入男生组"
elif [ $sex == 女 ];then //如果变量字符串等于女,进入女生组
echo "恭喜进入女生组"
else
echo "输入错误" //否则输入错误
fi
elif [ $num -ge 10 ];then //如果num大于等于10,会被淘汰
echo "淘汰"
else
echo "请重新输入"
fi
- 执行结果
3.实验三
用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
#!/bin/bash
case $1 in //定义位置变量$1
*.tar.gz|*.tar.bz2) //定义范围在*.tar.gz和*.tar.bz2
tar xf $1 -C /opt &> /dev/null //解压$1文件到/opt目录下
echo "已经解压到了opt目录"
;;
*) //表示其余的
echo "不是可解压文件"
esac
- 执行结果
4.实验四
提示用户输入内容,使用if 语句判断输入的内容是否为整数。
#!/bin/bash
read -p "请输入一个整数:" num //输入提示信息,定义变量num
expr $num + 0 &> /dev/null //使用变量num做算数运算
if [ $? -eq 0 ];then //如果上一次执行的命令的返回值0,则输出整数,否则不是整数
echo "是整数"
else
echo "不是整数"
fi
- 执行结果
5.实验五
根据上一题再判断输入的内容是奇数还是偶数。
#!/bin/bash
read -p "请输入一个整数:" num //输入提示信息,定义一个变量num
if [ $num -eq 0 ];then //只要变量是0,会输出既是整数也是偶数
echo "$num既是整数也是偶数"
else
expr $num + 0 &> /dev/null //使用变量num做算数运算
if [ $? -eq 0 ];then //如果上一次执行的命令的返回值0,则输出整数,否则不是整数
echo "是整数"
a=$[$num % 2] &> /dev/null //定义一个a等于num除以2取余
if [ $a = 0 ];then //如果a等于0时,输出偶数,否则输出奇数
echo "偶数"
else
echo "奇数"
fi
else
echo "不是整数"
fi
fi
- 执行结果
6.实验六
用if 语句判断主机是否存活
#!/bin/bash
ping -c 3 -i 0.5 -w 2 $1 &> /dev/null
if [ $? -eq 0 ];then
echo "$1 is online"
else
echo "$1 is offline"
fi
- 执行结果
7.实验七
用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中(#chkconfig: 2345 99 20)使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务, 要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。
[root@localhost ky22]# cd /etc/init.d/
[root@localhost init.d]# vim firewalld
#!/bin/bash
#chkconfig: - 2345 99 20
case $1 in
start)
systemctl start firewalld.service
;;
stop)
systemctl stop firewalld.service
;;
restart)
$0 start
$0 stop
;;
status)
systemctl status firewalld.service
;;
*)
echo "useage: $0 {start|stop|restart|status}"
esac
- 执行结果