返回列表 发帖

if语句

例子一,检测/mnt/cdrom是否存在。
脚本代码:
#!/bin/bash
if [ -e /mnt/cdrom/ ]; then
echo 'yes'
else
mkdir -p /mnt/cdrom/
echo '本来没有,已创建'
fi

效果:
图片1.png
2020-1-2 20:00










例子二,检测当前用户是否为root
脚本代码:
#!/bin/bash
yonghu=`whoami`
if [ $yonghu != root ]; then
echo "Not root"
exit 1 #终止脚本的运行; exit 0 也是终止脚本的运行
fi
echo "Welcome to root"

用户root运行此脚本时的效果:
图片2.png
2020-1-2 20:00



非用户root运行此脚本时的效果:
图片3.png
2020-1-2 20:01















例子三,连通性测试(可以用来测试目标主机是否存活)
脚本代码:(发送4个测试包、间隔为0.2秒、超时时间为3秒)
#!/bin/bash
ping -c 4 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]; then
echo "Host $1 is up"
else
echo "Host $1 is down"
fi

效果:(47.75.39.177是能ping通的;147.75.39.177是不能ping通的)
图片4.png
2020-1-2 20:01
















例子四,通过Shell脚本检查本机的FTP服务是否在运行:
脚本代码:
#!/bin/bash
netstat -anp | grep vsftpd &> /dev/null
if [ $? -eq 0 ]; then
echo "vsftpd is working."
echo "进程PID号: $(pgrep -x vsftpd)"
else
echo "vsftpd is not working."
fi

运行效果:
图片5.png
2020-1-2 20:01



图片6.png
2020-1-2 20:02


















例子五,通过Shell脚本检查本机的Apache服务是否在运行:
脚本代码:
#!/bin/bash
netstat -anp | grep httpd &> /dev/null
if [ $? -eq 0 ]; then
echo "httpd is working."
echo "进程PID号: $(pgrep -x httpd)"
else
echo "httpd is not working."
fi

运行效果:
图片7.png
2020-1-2 20:02



图片8.png
2020-1-2 20:02
















例子六,成绩分档脚本:
脚本代码:
#!/bin/bash
read -p "你好,请输入成绩(0-100): " grade
if [ $grade -ge 85 ] && [ $grade -le 100 ]; then
echo "${grade}分,是优秀的!!"
elif [ $grade -ge 75 ] && [ $grade -le 84 ]; then
echo "${grade}分,是良好的"
elif [ $grade -ge 60 ] && [ $grade -le 74 ]; then
echo "${grade}分,是合格的"
else
echo "${grade}分,是不合格的"
fi


运行效果:
图片9.png
2020-1-2 20:03








例子七,如果finger命令没有安装,会自动安装的
#!/bin/bash
rpm -qa | grep finger
if [ $? -ne 0 ]; then
yum -y install finger &> /dev/null
fi




相关文章:
Shell脚本中的函数
使用Shell脚本监控本机的CPU、内存、分区的使用率

返回列表