比较与测试

程序中的流程控制是由比较和测试语句来处理的。

我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项。另外,有一个test 命令也可以用来进行测试。让我们来看看如何使用这些命令。

实战演练:

if 条件:
if condition;
then
commands;
fielse if 和 else :
if condition;
then
commands;
elif condition;
then commands
elsecommands
fi

if和else语句可以进行嵌套。if的条件判断部分可能会变得很长,但可以用逻辑运算符将它变得简洁一些:

[ condition ] && action; #如果condition为真,则执行action
[ condition ] || action; #如果condition为假,则执行action

&&是逻辑与运算符,||是逻辑或运算符。


算数比较

条件通常被放在封闭的中括号内。一定要注意在[或]与操作数之间是有一个空格的。如果不加,则脚本会报错。例如:

[ $var -eq 0 ] or [ $var -eq 0 ]

对变量值进行算数条件判断:

[ $var -er 0 ] #当$var等于0时,返回真
[ $var -ne 0 ] #当$var为非0时,返回真

其他重要的操作符如下所示:

-gt :大于
-lt :小于
-ge :大于等于
-le :小于等于

字符串比较

使用字符串比较时,最好使用双中括号,因为有时候采用单个中括号会产生错误,所以最好避开它们。

[[ $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. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  2. Linux Shell 脚本攻略学习--四

    linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设 ...

  3. linux shell 脚本攻略学习11--mkdir和touch命令详解

    一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...

  4. linux shell 脚本攻略学习10--生成任意大小的文件和文本文件的交集与差集详解

    一.生成任意大小的文件(dd命令): 举例: amosli@amosli-pc:~/learn/example$ dd if=/dev/zero of=test.zip bs=2M count=1; ...

  5. Linux Shell脚本攻略学习总结:三

    根据扩展名切分文件名 首先,我们先来看两个例子: file_jpg="sample.jgp" name=${file_jpg%.*} echo File name is : $na ...

  6. LINUX SHELL脚本攻略笔记[速查]

    LINUX SHELL脚本攻略笔记[速查] Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgr ...

  7. Linux Shell脚本攻略 读书笔记

    内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...

  8. 《Linux Shell脚本攻略》学习笔记-第一章

    1.1 简介 计算机可以从文本文件(称为shell脚本)中读取并执行命令. sehll脚本不仅节省了时间,而且清楚明白地表明了所执行的操作. bash shell变成了UNIX和Linux中既成事实的 ...

  9. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

最新文章

  1. 【GAN优化】详解GAN中的一致优化问题
  2. RMAN的设置引起删除归档日志无法删除的错误
  3. 2019 .NET China Conf之我逛魔都
  4. linux expr格式,计算2-expr命令举例
  5. 搭建实用深度学习环境(Ubuntu16.10+Theano0.8.2+Tensorflow0.11.0rc1+Keras1.1.0)
  6. ubuntu16.04下安装openssh-server报依赖错误的解决方法
  7. FSR 是提高性能和视觉效果
  8. java随机一个数字和字母_java怎么实现随机4个带有数字和字母的验证码?
  9. php5apache2.dll,Apache2.2.8 + PHP5.2.5不能加载php5apache2.dll
  10. Python字符串逆序输出
  11. css3中文参考手册
  12. MATLAB安装错误:Check your internet connection and proxy settings in MATLAB Web preferences
  13. ansys18安装以后打不开_ansys18.0安装过程及常见问题解决方案【图文】
  14. 三国演义人名爬取与处理
  15. Blender 插件开发 将object设置成bpy.context.object
  16. ios 做不倒翁动画效果
  17. mysql 5.7 winx64_mysql 5.7.17 winx64安装配置方法图文教程
  18. 一步步分析为什么B+树适合作为索引的结构
  19. 语音控制垃圾分类箱的制作
  20. form-login属性详解

热门文章

  1. 探秘网络背后黑产链:黑客攻击木马病毒机构内鬼防不胜防
  2. Windows Mobile 与 PC之间的通过蓝牙(Bluetooth) 传输文件的开发
  3. Windows Media Player 损坏提示“出现了内部应用程序错误解决方法
  4. Python列表和元祖
  5. 分栏报表-物品清单报表实现
  6. Windows XP SP3远程桌面连接支持网络级身份验证配置
  7. leetcode解题报告:198 House Robber
  8. c++ 隐式类型转换
  9. TAB(Nav)导航菜单
  10. 《CLR Via C# 第3版》笔记之(二) - 响应文件