Shell 之 if
来源:互联网 发布:源码资本投资的项目 编辑:程序博客网 时间:2024/06/07 01:14
转自:http://blog.sina.com.cn/s/blog_4a071ed80101nww2.html
1、字符串判断
A = B 当两个串有相同内容、长度时为真A != B 当串A和B不等时为真
-n A 当串的长度大于0时为真(串非空)
-z A 当串的长度为0时为真(空串)
A 当串A为非空时为真
2、数字的判断
A -eq B 两数相等为真
A -ne B 两数不等为真
A -gt B A大于B为真
A -ge B A大于等于B为真
A -lt B A小于B为真
A -le B A小于等于B为真
3、文件的判断
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真
4、复杂逻辑判断
-a 与
-o 或
! 非
一下是一些使用实例:
#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"];then
mkdir "$myPath"
fi
#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"];then
mkdir "$myPath"
fi
#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ];then
touch "$myFile"
fi
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ];then
echo "$myVar is empty"
exit 0
fi
#两个变量判断是否相等
if [ "$A" == "$B" ];then
echo '$A eq $B'
else
echo '$A not eq $B'
fi
if list then
do something here
elif list then
do another thing here
else
do something else here
fi
#!/bin/sh
SYSTEM=`uname -s` #获取操作系统类型,我本地是linux
if [ $SYSTEM = "Linux" ];then #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ];then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ];then
echo "Solaris"
else
echo "What?"
fi #ifend
基本上和其他脚本语言一样。没有太大区别。不过值得注意的是. []里面的条件判断
实例:检查 OpenVPN 脚本
[root@80uncle shell]# cat vpn.sh
sslvpn=`netstat -anp|grep openvpn |grep udp |wc -l`
if [ $sslvpn -eq 1 ];then
echo openvpn is running
else
/sbin/service openvpn restart
sleep 2
sslvpn_new_status=`/bin/sh /data/shell/vpn.sh | awk '{print$3}'`
if [ $sslvpn_new_status == "ok" ];then
echo Openvpn is running
else
echo "Openvpn is not running" | mail -s "Notice! openvpn status isNot OK" root#80uncle.com ### 邮件通知脚本
fi
fi
注意:
1、if 与 [ 之间必须有空格
2、[ ] 与判断条件之间也必须有空格
3、] 与 ; 之间不能有空格
阅读全文
0 0
- linux shell 之if
- shell之if 语法
- Shell 之 if
- shell 之 if
- shell学习之 if
- Shell编程之if
- shell之if简化语句
- linux shell脚本之if
- shell 编程之 if 语句
- shell 脚本之if判断
- shell脚本之if语句
- linux shell 之if-------用if做判断
- linux shell 之if-------用if做判断
- linux shell 之if-------用if做判断
- linux shell 之if-------用if做判断
- linux shell 之if-------用if做判断
- linux shell脚本之if判断
- linux shell 脚本之【2】if详解
- 阿里云全球十四个节点评测分析及服务器地域选择攻略
- 2017/7/24 第一天
- 百练_3255:十进制到六进制
- js拖放排序和分类插件
- 自动部署脚本Linux+SVN+Maven
- Shell 之 if
- Android 使用极光推送集成、出现问题和后台保活
- Hibernate---对象的三种状态
- Linux内核分析-7/程序的装载(基于fork)
- 制作framework
- HDU6034Balala Power
- 算法导论 学习笔记 第一章
- 软件测试中的冲突测试
- angularJS <input type="file> 图片的base64编码