一、语法

if [ condition ]; then
# 当 condition 成立时,执行内容;
fi # 将 if 反过来写,fi 结束 if 之意
if [ condition ]; then
# 当 condition 成立时,执行内容;
else
# 当 condition 成立时,执行内容;
fi
if [ condition1 ]; then
# 当 condition1 成立时,执行内容;
elif [ condition2 ]; then
# 当 condition2 成立时,执行内容;
else
# 当 condition1 与 condition2 均不成立时,执行内容;
fi

二、练习

  1. 通过端口号判断 ssh 是否正在运行

    status=`netstat -tunap | egrep '\<0.0.0.0:22\>|\<:::22\>'`
    if [ "$status" != "" ]; then
    echo "SSH is running!"
    fi
    user@ae01:~$ sudo sh ./test.sh
    SSH is running!
    user@ae01:~$
  2. 判断 user 的 home 目录是否存在
    if [ -d /home/user ];then
    echo "/home/user is exists."
    else
    echo "/home/user is not exists."
    fi
    user@ae01:~$ sh ./test.sh
    /home/user is exists.
    user@ae01:~$
  3. 判断当前系统日期是不是在国庆假期内
    DATE=`date +%m%d`
    if [ $DATE -lt ]; then
    echo "National Day holiday hasn't arrived yet."
    elif [ $DATE -gt ]; then
    echo "National Day holiday is over."
    else
    echo "Happy Holiday!"
    fi
    user@ae01:~$ sh ./test.sh
    National Day holiday is over.
    user@ae01:~$

三、相关判别式详细

 运算符  描述               示例          
   字符串判断
 str1  当字符串非空时为真  [ "$str1"]
 str1 = str2  当两个字符串相同时为真  [ "$str1" = "$str2"]
 str1 != str2  当两个字符串不相等时为真  [ "$str1" != "$str2"] 
 -n str1  当字符串的长度不为0时为真  [ -n "$str1" ]
 -z str1  当字符串的长度为0时为真  [ -z "$str1" ]
   数字判段
 int1 -eq int2  当两数相等时为真   [ "$int1" -eq "$int2"]
 int1 -ne int2  当两数不相等时为真   [ "$int1" -ne "$int2"]  
 int1 -gt int2   int1 大于 int2 时为真   [ "$int1" -gt "$int2"] 
 int1 -ge int2  int1 大于等于 int2 时为真   [ "$int1" -ge "$int2"]
 int1 -lt int2   int1 小于 int2 时为真   [ "$int1" -lt "$int2"] 
 int1 -le int2   int1 小于等于 int2 时为真   [ "$int1" -le "$int2"] 
  文件判段
 -e filename  filename 存在则为真  [ -e "$filename" ]
 -d filename  filename 为目录则为真   [ -d "$filename" ]
 -f filename   filename 为常规文件则为真   [ -f "$filename" ]
 -L filename   filename 为链接文件则为真  [ -L "$filename" ]
 -c filename  filename 为特殊字符文件则为真  [ -c "$filename" ]
 -b filename  filename 为块文件则为真  [ -b "$filename" ]
 -s filename  filename 大小不为0时则为真  [ -s "$filename" ]
 -r filename  filename 可读则为真  [ -r "$filename" ]
 -w filename   filename 可写则为真   [ -w "$filename" ]
 -x filename   filename 可执行则为真   [ -x "$filename" ]
 filename1 -nt filename2  filename1 比 filename2新则为真  [ "$filename1" -nt "$filename2" ]
 filename2 -ot filename2  filename1 比 filename2旧则为真  [ "$filename1" -ot "$filename2" ]
  逻辑判断
 -a  逻辑与  [ 3 -gt 1 -a 1 -lt 3 ]
 -o  逻辑或  [ 3 -gt 1 -o 1 -ge 3 ]
 !  非真  

最新文章

  1. Python~字典
  2. websocket和swoole
  3. HTML 方法
  4. 二维码zxing源码分析(一)camera部分
  5. 在ssh框架中注解方式需要注意的几个问题
  6. 用lambda表达式替代 for循环进行批量操作。
  7. BZOJ 3275: Number( 最小割 )
  8. CI Weekly #13 | 用更 Geek 的方式配置你的 CI 工作流
  9. 为什么重写equals时必须重写hashCode方法?(转发+整理)
  10. 备忘录模式(Memento)
  11. Vue版本过渡变化
  12. hibernate查询出的实体,set值后,自动更新到数据
  13. 把post请求的地址粘贴到浏览器地址栏敲回车报错405[Method Not Allowed]
  14. spring cloud(服务消费者(利用feign实现服务消费及负载均衡)——初学三)
  15. 【Codeforces 467D】Fedor and Essay
  16. WEB前端技巧之JQuery为动态添加的元素绑定事件.md
  17. 增加一条新记录,同时返回其自增id
  18. zookeeper安装和dubbo-admin使用
  19. 20155333 2016-2017-2 《Java程序设计》第十周学习总结
  20. 《Linux内核与分析》第五周

热门文章

  1. 前端性能优化(DOM篇)
  2. centos7 php7 httpd
  3. hdu 1290 切糕
  4. js 闭包原理理解
  5. C#的lock关键字
  6. 【openGL】画五角星
  7. Ubuntu / Win7 安装db2 v10.5
  8. NPOI 通用导出数据到Excel 分类: C# Helper 2014-11-04 16:06 246人阅读 评论(0) 收藏
  9. Oracle性能优化之SQL语句
  10. [Maven] Missing artifact (解决办法)