1.if-then语句 

#!/bin/bash
username="root"
if grep $username /etc/passwd
then
echo "there is root"
fi

2.if-then-else

#!/bin/bash
username="hahaha"
if grep $username /etc/passwd
then
echo "there is hahaha"
else
echo "there is not hahaha" fi

3.elif-then

#!/bin/bash
username1="hi"
username2="root"
if grep $username1 /etc/passwd
then
echo "there is hi"
elif grep $username2 /etc/passwd
then
echo "there is root"
else
echo "lili"
fi

4.test命令

若命令成立,返回退出状态码0

if pwd
then
echo "hello"
fi

bash shell 提供了另一种test的简洁语法方法,如下:

if [ condition ]

then

  commands

fi

#!/bin/bash

if [ -e $ ]
then
echo $
else
echo "$1 is not exist!"
fi

! ! ! ! ! ! ! ! 方括号内的两边一定要有空格

test命令可以进行三类比较;

  • 数值比较
  • 字符串比较
  • 文件比较

1.数值比较

#!/bin/bash
var_1=
var_2=
if [ $var_1 -gt $var_2 ] #一定要空格
then
echo "var_1 > var_2"
else
echo "var_1 <= var_2"
fi

bash shell不能处理浮点数,test也不能处理浮点数,所以这里如果比较浮点数的大小会报错

2.字符串比较

比较大小时注意>,<符号需要转义,即[ $var_1 \>$var_2 ]

3.文件比较

5.if-then高级特性 

bash提供了两种if-then语句中使用的高级特性:

  • 用于数学表达式的双括号
  • 用于高级字符串处理功能的双方括号

1.双括号

#!/bin/bash
var_1=
var_2=
if (( $var_1==$var_2* ))
then
echo "var_1 =2x var_2"
else
echo "var_1 !=2x var_2"
fi

2.使用双方括号(进行模式匹配)

#!/bin/bash
var=string
if [[ $var==s* ]]
then
echo "var is $var"
else
echo "none"
fi

6.case命令

case var in 

pattern1 | pattern2) command;;

pattern3) command;;

*) default command;;

esac

#!/bin/bash
var=string
case $var in
str) echo "str";;
string) echo "string";;
*) default echo "default";;
esac

[SHELL]结构化命令之条件语句的更多相关文章

  1. linux shell脚本使用结构化命令

    内容: 一.if-then命令 二.if-then-else命令 三.test命令 四.case命令 1.if-then结构化命令中最基本的类型,其格式如下: if command then comm ...

  2. Shell 语法之结构化命令(流程控制)

    许多程序在脚本命令之间需要某种逻辑流控制,允许脚本根据变量值的条件或者其他命令的结果路过一些命令或者循环执行这些命令.这些命令通常被称为结构化命令.和其他高级程序设计语言一样,shell提供了用来控制 ...

  3. 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令

    许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then     ...

  4. bash&nbsp;shell笔记3&nbsp;结构化命令二

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/513601 三 ...

  5. bash&nbsp;shell笔记2&nbsp;结构化命令

    二.使用结构化命令 知识内容: # 改变命令流 # 使用if-then逻辑 # 嵌套if-then # 测试条件 # 高级if-then功能 许多程序在脚本命令之间需要某些逻辑控制流,有些命令允许脚本 ...

  6. shell的结构化命令

    shell在逻辑流程控制这里会根据设置的变量值的条件或其他命令的结果跳过一些命令或者循环执行的这些命令.这些命令通常称为结构化命令 1.if-then语句介绍 基本格式 if command then ...

  7. Shell编程—结构化命令(2)

    1for命令 for命令的基本格式: for var in list do commands done 在list参数中,你需要提供迭代中要用到的一系列值. 1.1读取列表中的值 例子: $ vim ...

  8. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

  9. shell脚本中的if条件语句介绍和使用案例

    #前言:在生产工作中if条件语句是最常使用的,如使用来判断服务状态,监控服务器的CPU,内存,磁盘等操作,所以我们需要熟悉和掌握if条件语句. #简介 if条件语句,简单来说就是:如果,那么.有if单 ...

随机推荐

  1. HDU 1009 FatMouse' Trade(简单贪心)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade Time Limit: 2000/1000 MS (Java/O ...

  2. Gradle Goodness: Changing Name of Default Build File

    Gradle uses the name build.gradle as the default name for a build file. If we write our build code i ...

  3. 『ACM C++』 PTA 天梯赛练习集L1 | 048-49

    今日刷题048-049 ------------------------------------------------L1-048---------------------------------- ...

  4. 关于document.write()加载JS等静态资源 和 异步async加载JS

    现流行浏览器对于静态资源的预加载 传统的浏览器,对于静态资源加载,会阻塞 HTML 解析器的线程进行,无论内联还是外链. 例如: <script src="test1.js" ...

  5. Python模块、包、异常、文件(案例)

    Python模块.包.异常.文件(案例) python.py #模块 # Python中的模块(Module),是一个Python文件,以.py文件结尾,包含了Python对象定义和Python语句, ...

  6. Vue中异步组件(结合webpack,转载)

    转载,原文出处:https://www.jianshu.com/p/40a364b5e964 1.什么是异步组件? 异步组件就是定义的时候什么都不做,只在组件需要渲染(组件第一次显示)的时候进行加载渲 ...

  7. vue2.0 接收url参数

    1) 路由配置传参方式在配置路由时 例如 "/firewall/authorize/:uid/:uname/:token"页面url为 http://XXX.com/firewal ...

  8. 关于“CheckBox”通过表单提交的问题

    大多数时候CheckBox取值传到java后台都是通过js取值,ajax传值,今天改一离职同事的老代码,那家伙通过表单提交一些列的CheckBox设置,没想到的是后台死活接收不正常,name.valu ...

  9. CentOS6的/etc/rc.local不执行的问题解决

    小编在一个场景下,希望java -jar abc.jar命令在系统开机自启动是自动执行,于是乎在文件/etc/rc.local中写入nohup java -jar abc.jar &,重启后发 ...

  10. FMX相关

    ListView的ItemAppearance的样式效果表: Navicat for 插入图片步骤: 如果最后一条记录的图片有问题,可以先插入下一条再导入图片.