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. 二、HDFS 架构

    源自:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html HDFS has a m ...

  2. OC - 时间日期类NSDate

    OC - 时间日期类NSDate //NSDate 时间日期类 NSDate 二进制数据流 { //1.获取当前时间 零时区的时间 //显示的是格林尼治的时间: 年-月-日 时:分:秒:+时区 NSD ...

  3. Jquery知识点总结(一)

    JQuery遍历1 传统的for   2 通过each对象调用callback函数 callback回调函数 /*    * JQ提供的技术,实现遍历    * JQ对象函数调用 each(参数 ca ...

  4. http请求常用的状态码

    常见的http请求响应的状态码 一些常见的状态码为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状 ...

  5. 登录验证码的生成Java代码

    package example7; import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java. ...

  6. JavaScript深入之参数按值传递

    在<JavaScript高级程序设计>第三版 4.1.3,讲到传递参数: ECMAscript中所有函数的参数都是按值传递 按值传递 也就是,把函数外部的值复制给函数内部的参数,就和把值从 ...

  7. go加密算法:非对称加密(一)--RSA

    椭圆曲线加密__http://blog.51cto.com/11821908/2057726 // MyRas.go package main import ( "crypto/rand&q ...

  8. 配置一个nginx+php-fpm的web服务器

    一.基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com 反代&负载均衡(N):NGINX 1.14.0 #下载地址:http://nginx ...

  9. ueditor 富文本编辑器 Uncaught TypeError: Cannot set property 'innerHTML' of undefined问题

    ueditor.addListener("ready", function () { ueditor.setContent(‘内容'); });

  10. seleniun 爬取淘宝网

    import re from selenium import webdriver from selenium.common.exceptions import TimeoutException fro ...