1.if—then
#!/bin/bash
if date              如果命令运行成功(退出码为0),则then部分的命令被执行
then
   echo "good"
fi

2.if—then—else
#!/bin/bash
if hunter
then
   echo "good"
else 
   echo "bad"        if语句中退出码非0,则执行else部分语句
fi

3.elif
#!/bin/bash
if hunter
then
   echo "command not found"
elif date            多重If判断
then
   echo "date"
fi

4.test命令           与其它编程语言思维一样的方式
#!/bin/bash
if test 1 -eq 2      test命令列出条件成立则退出并返回状态码0,命令等同if [ 1 -eq 2]
then
   echo "right"
else
   echo "wrong"
fi

5.条件比较
1)数据比较
n1 -eq n2            相等
n1 -ge n2            大于或等于
n1 -gt n2             大于
n1 -le n2             小于等于
n1 -lt n2              小于
n1 -ne n2            不等于
2)字符串比较
str1 = str2
str1 != str2
str1 < str2
str1 > str2
-n str1              检查str1的长度是否非0
-z str1              检查str1的长度是否为0

#!/bin/bash
str1=good
str2=wrong
if [ $str1 \> $str2 ]          大于号需要转义,否则脚本会当重定向符号
then echo "$str1 is greater than $str2"
else
   echo "$str1 is less than $str2"
fi

#!/bin/bash
str=
if [ -z "$str" ]               判断字符串是否为空,空的或未初始化的变量对Shell脚本很致命
then 
   echo "empty"
else
   echo "not empty"
fi

4)复合条件&&与、||或
#!/bin/bash
if [ -e str ] && [ -f zero ]
then
   echo "file all exist"
fi

5)双圆括号
#!/bin/bash
str1=good
str2=wrong
if (( $str1 > $str2 ))        双圆括号中表达式里的大于号不用转义
then echo "$str1 is greater than $str2"
else
   echo "$str1 is less than $str2"
fi

6)双方括号
#!/bin/bash

if [[ $USER == r* ]]          支持通配符模式
then
echo "welcome root user"
else
echo "sorry"
fi

  

7)case分支
#!/bin/bash
case $USER in
root|hunterno4)
   echo "welcome root user";;           尾部两个分号
mysql)
   echo "welcome to database";;
surfftp)
   echo "nice to meet you";;
*)                                      都不匹配时的default语句
   echo "i don't know you";;
esac

#! /bin/bash

str1=
str2=
if [ $str1 -gt $str2 ] #大于号需要转义,否则脚本会当重定向符号
then echo "$str1 is greater than $str2"
elif [ $str1 -eq $str2 ]
then echo "$str1 is equal to $str2"
else
echo "$str1 is less than $str2"
fi str="abc"
if [ -z $str ]
then
echo "empty"
else
echo "not empty, the string is: "$str
fi str3="aaa"
if [[ $str3="aaa" ]]
then echo "str3($str3) equals \"aaa\""
else
echo "not equals"
fi if test =
then echo "test "test" "
else echo "not equals"
fi

Linux Shell编程(1): 条件语句的更多相关文章

  1. 02 shell编程之条件语句

    Shell编程之条件语句 学习目标: 掌握shell脚本条件测试 掌握if语句编程 目录结构: 条件测试 条件测试概述 l  对特定的条件进行判断,以决定如何执行操作 l  测试的方法 方法1:tes ...

  2. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  3. Shell编程之条件语句:if、case语句

    Shell编程之条件语句:if.case语句               一.条件测试                1)test命令测试                2)整数值比较         ...

  4. shell编程之条件语句

    目录: 一.条件测试 1.test命令测试 2.文件测试 3.字符串比较 4.逻辑测试 二.if语句 1.if单分支语句 2.if双分支语句 3.if多分支语句 三.case语句 case多分支语句 ...

  5. Linux - 简明Shell编程05 - 条件语句(Case)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...

  6. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  7. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  8. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  9. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

随机推荐

  1. java 使用 comet4j 主动向客户端推送信息 简单例子

    [背景] 今天,一个前端的师弟问我怎样做实时聊天窗口,我毫不犹豫地说:在前台定时访问服务端呀!师弟默默地百度了一番,最后告诉我,有一种技术是后服务端动推送信息给客户端的,这种技术的名字叫comet,我 ...

  2. 阿里云CentOS6.3 安装MongoDB教程

    安装说明 系统环境:Centos-6.3安装软件:mongodb-linux-x86_64-2.2.2.tgz下载地址:http://www.mongodb.org/downloads安装机器:192 ...

  3. 安装 NoMachine(NX) client and server

    (1)Windows上直接安装nxclient-3.5.0-9.exe即可 (2)Linux上 准备linux rpms nxclient-3.5.0-7.x86_64.rpmnxnode-3.5.0 ...

  4. 【c++基础】const、const指针、const引用

    一.const常量 声明时必须同时初始化(和“引用”一样) 二.const指针 三.const引用 引用本身和引用的对象都是const对象,可以用字面值来赋给const引用(普通引用则不行) ; co ...

  5. QTP重要功能总结

    以下为QTP最应掌握的.最常用的功能(以下仅提供菜单入口,其他还有很多入口,但功能都是一样的) 1.QTP上方菜单栏->Tools->Object Spy(对象探测器)----多个入口 功 ...

  6. [YY题]HDOJ5288 OO’s Sequence

    题意:求这个式子 $\sum \limits_{i=1}^{n} \sum \limits_{j=1}^{m} f(i, j) mod (10^9 + 7)$ 的值 就是对每个区间[i, j]枚举区间 ...

  7. [转]ubuntu server:开机自动登录

    原文链接: Ed29.com http://ed29.com/ubuntu%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95 ...

  8. lintcode :Integer to Roman 整数转罗马数字

    题目 整数转罗马数字 给定一个整数,将其转换成罗马数字. 返回的结果要求在1-3999的范围内. 样例 4 -> IV 12 -> XII 21 -> XXI 99 -> XC ...

  9. lintcode:Matrix Zigzag Traversal 矩阵的之字型遍历

    题目: 矩阵的之字型遍历 给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历. 样例 对于如下矩阵: [ [1, 2, 3, 4], [5, 6, 7, 8], [9 ...

  10. STL函数模板(即算法)一览

    查找算法 adjacent_find:找出一个串中第一个不符合次序的地方 find,find_if:找出第一个符合条件的元素 find_first_of:在一个串中寻找第一个与另一个串中任意一个元素相 ...