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. 【BZOJ】【2768】【JLOI2010】冠军调查

    网络流/最小割 我不会告诉你这题跟 BZOJ 1934 是一模一样的……包括数据范围…… /****************************************************** ...

  2. 设置配置文件信息时的classpath

    首先 classpath是指 WEB-INF文件夹下的classes目录  其中:lib和classes下文件访问优先级的问题: lib>classes  classpath 和 classpa ...

  3. 01-06-01【Nhibernate (版本3.3.1.4000) 出入江湖】事务

    Nhibernate事务的使用: public void Add(Customer customer) { ISession session = _sessionManager.GetSession( ...

  4. Eclipse对svn操作切换账号或更换svn地址方法

    1. 切换账号,主要是删除配置文件达到重新更新svn的时候,弹出框让重新输入新的svn用户名和密码. 1.通过删除SVN客户端的账号配置文件   1)查看你的Eclipse中使用的是什么SVN Int ...

  5. oracle RAC--归档日志的开启方法

    oracle RAC--归档日志的开启方法 2011-10-07 15:53:04 分类: Oracle oracle RAC--归档日志的开启方法   ======================= ...

  6. ZOJ3765 Lights Splay树

    非常裸的一棵Splay树,需要询问的是区间gcd,但是区间上每个数分成了两种状态,做的时候分别存在val[2]的数组里就好.区间gcd的时候基本上不支持区间的操作了吧..不然你一个区间里加一个数gcd ...

  7. hdu 2177 取(2堆)石子游戏 博弈论

    由于要输出方案,变得复杂了.数据不是很大,首先打表,所有whthoff 的奇异局势. 然后直接判断是否为必胜局面. 如果必胜,首先判断能否直接同时相减得到.这里不需要遍历或者二分查找.由于两者同时减去 ...

  8. http://www.yihaomen.com/article/java/302.htm

    http://www.yihaomen.com/article/java/302.htm

  9. cojs EX_香蕉 题解报告

    这道题目是香蕉的加强版 当m=100w时矩阵会很大,而且又有多组询问,所以这道题用原来香蕉的程序会T 所以我们需要更好点的做法 我们考虑优化我们的状态 首先考虑这道题的隐藏性质,考虑不合法的情况 那么 ...

  10. EXCEL排序

    题目描述:     Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能.     对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始).随后在 N ...