1、条件判断:

  if 使用:

if condition;
then
commands;
fi

  if else 使用:

if condition;
then
commands;
else if condition; then
commands;
else
commands;
fi

  说明:

if和else语句可以进行嵌套。if的条件判断部分可能会变得很长,
但可以用逻辑运算符将它变得简洁一些:
 [ condition ] && action; # 如果condition为真,则执行action;
 [ condition ] || action; # 如果condition为假,则执行action。
&&是逻辑与运算符,||是逻辑或运算符。编写Bash脚本时,这是一
个很有用的技巧。现在来了解一下条件和比较操作。

2、算术比较

条件通常被放置在封闭的中括号内。一定要注意在[或]与操作数之间有一个空格。如果
忘记了这个空格,脚本就会报错。例如:
[$var -eq ] or [ $var -eq ]
对变量或值进行算术条件判断:
[ $var -eq ] #当 $var 等于 时,返回真
[ $var -ne ] #当 $var 为非 时,返回真
其他重要的操作符如下所示。
 -gt:大于。
 -lt:小于。
 -ge:大于或等于。
 -le:小于或等于。
可以按照下面的方法结合多个条件进行测试:
[ $var1 -ne -a $var2 -gt ] #使用逻辑与-a
[ $var1 -ne -o var2 -gt ] #逻辑或 -o

3、文件系统相关测试

我们可以使用不同的条件标志测试不同的文件系统相关的属性。
 [ -f $file_var ]:如果给定的变量包含正常的文件路径或文件名,则返回真。
 [ -x $var ]:如果给定的变量包含的文件可执行,则返回真。
 [ -d $var ]:如果给定的变量包含的是目录,则返回真。
 [ -e $var ]:如果给定的变量包含的文件存在,则返回真。
 [ -c $var ]:如果给定的变量包含的是一个字符设备文件的路径,则返回真。
 [ -b $var ]:如果给定的变量包含的是一个块设备文件的路径,则返回真。
 [ -w $var ]:如果给定的变量包含的文件可写,则返回真。
 [ -r $var ]:如果给定的变量包含的文件可读,则返回真。
 [ -L $var ]:如果给定的变量包含的是一个符号链接,则返回真。
使用方法如下:
fpath="/etc/passwd"
if [ -e $fpath ]; then
echo File exists;
else
echo Does not exist;
fi

4、字符串比较

使用字符串比较时,最好用双中括号,因为有时候采用单个中括号会产生错误,所以最
好避开它们。
可以用下面的方法检查两个字符串,看看它们是否相同。
 [[ $str1 = $str2 ]]:当str1等于str2时,返回真。也就是说,str1和str2包含
的文本是一模一样的。
 [[ $str1 == $str2 ]]:这是检查字符串是否相等的另一种写法。
也可以检查两个字符串是否不同。
 [[ $str1 != $str2 ]]:如果str1和str2不相同,则返回真。
我们还可以检查字符串的字母序情况,具体如下所示。
 [[ $str1 > $str2 ]]:如果str1的字母序比str2大,则返回真。
 [[ $str1 < $str2 ]]:如果str1的字母序比str2小,则返回真。
 [[ -z $str1 ]]:如果str1包含的是空字符串,则返回真。
 [[ -n $str1 ]]:如果str1包含的是非空字符串,则返回真。

Linux Shell角本中的条件判断的更多相关文章

  1. shell中的条件判断以及与python中的对比

    shell中比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格. if ....; then          ...

  2. Shell编程中的条件判断(条件测试)

    Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式:        (注: expression 与 [] 之间空格不能省略) [ expressi ...

  3. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  4. sql 语句中使用条件判断case then else end

    sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...

  5. Linux shell去除字符串中所有空格

    Linux shell去除字符串中所有空格 echo $VAR | sed 's/ //g'

  6. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  7. shell中的条件判断if和测试

    (一)条件判断 if 中-z 到 -d 的意思 [ -a file ] 若file存在,则为真. [ -b file ] 若file存在且是一个块特殊文件,则为真. [ -c file ] 若file ...

  8. 完全总结bash中的条件判断test [ [[ 使用

    在bash脚本编程中,我们经常做一些条件判断, 我们主要用到了三种,test,单中括号,双中括号 经常有看到不同的写法,如: [ $? –eq ] [[ $myvar == “mysql” ]] te ...

  9. Shell脚本 (三) 条件判断 与 流程控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 六.条件判断 1.基本语法 [ condition ](注意condition 前后要有空格) 注意:条 ...

随机推荐

  1. mormot中间件成功匹配客户端FDMemTable和ClientDataSet

    mormot中间件成功匹配客户端FDMemTable和ClientDataSet

  2. Chrome 如何知道网站启用了SPDY 协议?

    地址栏输入chrome://net-internals/#spdy 在host后查看协议,google和dropbox用https协议的开启了 3. 也可以通过安装插件来查看(SPDY Indicat ...

  3. 查看Android源码版本

    from://http://www.cnblogs.com/flyme/archive/2011/10/14/2211143.html 有时候我们辛苦取到Android的源代码,想知道它的确切版本号, ...

  4. Java List集合冒泡法排序的两种实现

    冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已 ...

  5. Oracle初级索引学习总结

    前言  索引是常见的数据库对象,建立索引的目的是为了提高记录的检索速度.它的设置好坏,使用是否得当,极大地影响数据库应用程序和Database的性能.虽然有许多资料讲索引的用法,DBA和Develop ...

  6. 手游开发Android平台周边工具介绍

    1.渠道接入 主要是需要接入各平台的登录.充值接口,各家SDK又不统一,Android渠道都是鱼龙混杂,就算小渠道你看不上,但量多了,加起来也还可观,所以大家都拿出吃奶的尽去铺渠道.国内几大主要的An ...

  7. Oracle锦集

    1:将数组转成datatable SELECT COLUMN_VALUE FROM TABLE(CAST(UTIL.INTONUMBERTABLE(REPLACE(NVL(V_CATEGORY_ID, ...

  8. DAU预测

    转自: http://www.kaixin001.com/repaste/80488684_6910412734.html 我们知道在所有的游戏运营数据中,最终要的两个数据莫过于DAU.ARPU了.| ...

  9. 关于XSHM(Cross-Site History Manipulation)

    http://blog.chinaunix.net/uid-27070210-id-3255407.html 乍一看,好像和以前 css history hack 差不多,其实原理还是不一样的.浏览器 ...

  10. SQL Server 函数 LEN 与 DATALENGTH的区别

    http://blog.csdn.net/Hello_World_wusu/article/details/4667452 DATALENGTH()函数返回一个用于对值进行管理的字节数,这有助于揭示不 ...