流程控制:if
========================================================
一、Shell基础
[root@jeson shell]# cat 01.sh
cd /boot
pwd
ls vm*
执行脚本:
# source 01.sh 不需要执行权限 在当前shell中执行
# . 01.sh 不需要执行权限 在当前shell中执行
# sh 01.sh 不需要执行权限 在子shell中执行
# ./01.sh 需要执行权限 在子shell中执行
调试脚本:
# sh -vx 01.sh 以调试的方式执行
# sh -n 02.sh 仅调试 syntax error
# cat 01.sh 仅调试脚本的某一部分
cd /boot
set -x
pwd
ls vm*
set +x
pwd
cd
二、流控:if语句
单分支结构
if 条件测试
then 命令序列
fi
双分支结构
if 条件测试
then 命令序列
else 命令序列
fi
多分支结构
if 条件测试1
then 命令序列
[elif 条件测试2
then 命令序列
elif 条件测试3
then 命令序列]…
else 命令序列
fi
作业:
1. 判断一个用户是否存在
2. 判断当前内核的主版本是否为2,且次版本是否大于6
3. 判断vsftpd软件包是否安装,如果没有,则自动安装
4. 判断httpd是否运行
5. 判断指定的主机是否能ping通,必须使用$1变量
6. 判断: 如果vsftpd启动,输出以下信息:
vsftpd服务器已启动…
vsftpd监听的地址是:
vsftpd监听的端口是:
vsftpd的进程PID是:
netstat -tnlp |grep vsftpd
7. 写一个脚本,如果
根分区剩余空间小于20%
内存的已用空间大于80%
向用户alice发送告警邮件,邮件的内容包含使用率相关信息