基本语法结构
if结构
if [ 判断条件 ];then
条件为真 执行语句
command
fi
[ 判断条件 ] && command
if…else结构
if [ 判断条件 ];then
条件为真 执行语句
command
else
条件为假 执行语句
command2
fi
[ 判断条件 ] && command || command2
if…elif…else结构
if [ 判断条件1 ];then
条件为真 执行语句
command1
elif [ 判断条件2 ];then
条件为真 执行语句
command2
else
条件为假 执行语句
command3
fi
##先判断第一个条件是否满足,满足执行后面命令结束,如果不满足,则继续判断第二个条件是否满足,同理,如果都不满足,则最后执行else的语句
##可以有多个elif
多层嵌套
if [ 判断条件1 ];then
条件为真 执行语句
command1
if [ 判断条件2 ];then
条件为真 执行语句
command2
fi
else
if [ 判断条件3 ];then
条件为真 执行语句
command3
elif [ 判断条件4 ];then
条件为真 执行语句
command4
else
条件为假 执行语句
command5
fi
就是对上面的语句进行嵌套
应用案例
判断2台主句是否ping打的通
#!/bin/bash
ping -c 3 192.168.0.1 > /dev/null && ping -c 3 192.168.0.2 > /dev/null
if [ $? -eq 0 ];then
echo "ok"
else
echo "not ok"
fi
#通过ping的$?值来判断是否正常
判断httpd是否存在进程
#!/bin/bash
#ps -ef | greo httpd | grep -v 'grep'
#$?
pgrep httpd > /dev/null
#查找进程的id pgrep
#$?
if [ $? -eq 0 ];then
echo "ok"
else
echo "not ok"
fi
#通过pgrep的$?值来判断是否存在
或者
test $? -eq 0 && echo "ok" || echo "not ok"
判断门户网站是否正常访问
#!/bin/bash
wget /zss/ http://www.baidu.com &> /dev/null
if [ $? -eq 0 ];then
echo "ok"
rm /zss/index*
else
echo "not ok"
fi
或
test $? -eq 0 && echo "ok" || echo "not ok"
#Linux 访问web 返回状态码 200
#可以通过wget 下载 判断$?
#curl
#elinks -dump
判断用户是否存在
#!/bin/bash
read -p "请输入要判断的用户名:"username
id $username &> /dev/null
if [ $? -eq 0 ];then
echo "ok"
else
echo "not ok"
fi
#判断用户是否存在
#id user
#grep -w admin /etc/passwd
#精确匹配
#根据$?
grep -w admin /etc/passwd
#精确匹配admin
总结
变量定义
基本定义
变量名=变量值
交互式定义
read -p "提示信息"变量名
定义有类型的变量
declare -i/x 变量名=变量值
条件判断
语法结构
test 表达式
[ 表达式 ]
[[ 表达式 ]]
判断什么
整数判断
-eq 相等
-ne 不等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
文件类型
-e 判断文件是否存在(任何类型文件)
-f 判断文件是否存在并且是一个普通文件
-d 判断文件是否存在并且是一个目录
-L 判断文件是否存在并且是一个软链接文件
-b 判断文件是否存在并且是一个块设备文件
-S 判断文件是否存在并且是一个套接字文件
-c 判断文件是否存在并且是一个字符设备文件
-p 判断文件是否存在并且是一个命名管道文件
-s 判断文件是否存在并且是一个非空文件(有内容)
字符串
-z 判断是否为空字符串,字符串长度为0则成立
-n 判断是否为非空字符串,字符串长度不为0则成立
string1 = string2 判断字符串是否相等
string1 != string2 判断字符串是否不相等
文件新旧(修改时间)
文件权限
流程控制语句
if 结构
if...else结构
if...elif...else...结构
层层嵌套
版权声明:本文为weixin_43862755原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。