shell中if的使用

  • shell中if的基本使用
    • shell中if的基本使用
    • SHELL中if中条件表达式的使用
      • shell中if的整数比较
      • shell中if的浮点数比较
      • shell中if的字符比较
        • shell中if多个字符变量同时比较
    • shell中if连续判断多个条件
    • 文件判断
    • SHELL中if使用正则表达式

shell中if的基本使用

if的使用需要使用 [ expression ] 或者 [[ expression ]] 特别的是,中括号的两侧需要使用空格。也可不使用[] 使用 test expression。
笔者习惯使用 [ expression ] 的格式,下文均为此格式。
下为符合expression则打印1。

if  [ expression ]  ; thenecho 1
fi
#或者
if  test  expression ; thenecho 1
fi

shell中if的基本使用

变量a和变量b数值相等则输出aaa,否则输出bbb

a=1
b=1
if [ $a -eq $b ] ; thenecho aaa
elseecho bbb
fi

SHELL中if中条件表达式的使用

在if的条件表达式中需要对判断的变量类型区分

shell中if的整数比较

整数比较时可以不使用""来包围变量。使用形如文上shell中if的基本使用
整数比较使用形如 [ $a -gt 0 ] 的表达式形式
其中
-eq 两个整数是否相等
-ne 两个整数是否不等
-gt 一个数是否大于另一个数
-lt 一个数是否小于另一个数
-ge 大于等于
-le 小于等于

shell中if的浮点数比较

参照浮点数运算,将两值相减。例 :

v=`echo $a $b|awk '{printf "%0.4f\n", $1-$2}'`

下面有解决的初步方法:
1.只比较大小,可以乘以对应的10的平方,再计算。

2.在只考虑两浮点数差值大于一的情况下。
相减出的值

使用cut指令切割第一个字符,和第二个字符。
|cut -c 1
第一个字符为 - ,则a<b
第一个字符0则相等
第一个字符为1-9,则a<b

两浮点数相差较小(小于1),仍需要比较的。需要逐位切割字符,比较大小。
shell中实现浮点数运算

shell中if的字符比较

字符比较必须使用""引号将变量包围。
比较使用 != 或者 =

$a=x
if [ "$a" = "x" ] ; thenecho aaa
elseecho bbb
fi

shell中if多个字符变量同时比较

形如以下模式的比较,变量最好加上{},形成a的格式。例子A:if["{a}的格式。 例子A:if [ "a的格式。例子A:if["ax" = “xx” ]
例子B:if [ "ax"="xx"]例子A会认为变量{a}x" = "xx" ] 例子A会认为变量ax"="xx"]例子A会认为变量ax 是否为xx的字符

$a=x
$b=aaa
if [ "${a}${b}" = "x${b}" ] ; thenecho aaa
elseecho bbb
fi

shell中if连续判断多个条件

if中 || 或条件和 && 与条件的使用方法一致。

number1=1
number2=2

if [[ "$number1" = "1" ]] && [[ "$number2" = "2" ]]  ; thenecho "number1=1 and number2=2"
fi

判断StrStart为1-9之间的数值,符合条件的输出StrstartNot0
下面的双中括号 [[ ]] 和单中括号效果一致 [ ]

StrStart=1
if [[ "$StrStart" = "1" ]] || [[ "$StrStart" = "2" ]] || [[ "$StrStart" = "3" ]] || [[ "$StrStart" = "4" ]] || [[ "$StrStart" = "5" ]] || [[ "$StrStart" = "6" ]]|| [[ "$StrStart" = "7" ]] || [[ "$StrStart" = "8" ]] || [[ "$StrStart" = "9" ]]  ; thenecho StrStartnot0
fi

文件判断

此部分笔者未使用过,摘自其他文章。
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
注 在上述字符前加“!”则表示相反,即“是否不存在”
-nt 判断file1是否比file2新
-ot 判断file1是否比file2旧
————————————————
原文链接:https://blog.csdn.net/qq_28723681/article/details/116495755

SHELL中if使用正则表达式

判断number是否为0-9之间的数字。

if [ $number=^[0-9] ];thenecho "correct"
elseecho "error"
fi

以下为正则表达式的使用连接(未更新)
正则表达式的使用

文中如有错误,希望指正。感谢阅读。

SHELL中if的使用相关推荐

  1. shell中十种实现自加的方法

    shell中十种实现自加的方法 let "n = $n + 1" : $((n = $n + 1)) ((n = n+1)) n=$(($n + 1)) : $[ n = $n + ...

  2. 【linux】shell中整数运算的加、减、乘、除

    1.使用双括号"(( ))" shell中变量实现加法的方法 d= $(($d + 2)) 例子如下 #!/bin/bash d=0 echo "d=$d"fo ...

  3. linux shell $0怎么输出,linux shell中$0,$?,$!等的特殊用法

    一.Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义说明 (1)$$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号) (2)$! Shell最后运行的后台Pr ...

  4. Linux从mysql中读取数据_linux shell中读写操作mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  5. shell中的函数shell中的数组告警系统需求分析

    2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用 ...

  6. shell中大于、等于、小于

    shell中大于.等于.小于 -eq           等于 -ne           不等于 -gt            大于 -lt            小于 -ge           ...

  7. shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?

    每个 Linux 管理员都可能听到过 shell 这个词.你知道什么是 shell 吗? 你知道 shell 在 Linux 中的作用是什么吗? Linux 中有多少个 shell 可用? -- Ma ...

  8. linux的shell的功能,linux shell中${ }的一些特异功能

    linux shell中${ }的一些特异功能,这部分内容是shell中的比较经典的部分之一,建议认真学习,深刻体会. 假设我们定义一个变量为: file=/dir1/dir2/dir3/my.fil ...

  9. linux shell中小数的运算

    对于在Shell中进行小数数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1.bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点. root@localhost:~# echo ...

  10. shell中执行脚本并显示到终端和保存到日志文件中

    我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo  "abck" 以上在手动执行脚本中是可以的,如果是编写 ...

最新文章

  1. 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...
  2. Thymeleaf中each标签遍历list如何获取index
  3. 【MyBatis】学习纪要六:动态SQL
  4. Windows下MariaDB数据库安装图文教程
  5. String.slice
  6. 双11,2分钟狂挣20亿的神秘大厂,急招.NET!
  7. leetcode43. 字符串相乘
  8. KubeCon 、 CloudNativeCon、Open Source Summit 2019三会交融,看点不断!
  9. web.config中的ExtensionlessUrlHandler-Integrated-4.0
  10. 仿微信添加触摸图片阴影效果
  11. 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
  12. 2020上海大学生网络安全赛MISC可乐加冰
  13. python做题记录之切西瓜
  14. 串口转以太网服务器原理,【干货】自制低成本串口转以太网网关
  15. 基于内容可变长度分块Content Defined Chunking
  16. 专家议微软黑屏:目的正当 手段未必正当
  17. 单片机程序跑飞死机的几种原因
  18. 数学建模竞赛中的两个技巧
  19. MQTT Broker 比较与选型
  20. 中国风味苹果酒市场现状研究分析与发展前景预测报告(2022)

热门文章

  1. 【1/101】小朱的101次面试之首次面试
  2. 如何查看自己chrome的版本
  3. python开发工具排行榜_php开发工具排行2017
  4. phpstorm激活码注册码序列号
  5. python里面的报错语句翻译_(翻译)30天学习Python
  6. springmvc中ajax,springmvc中ajax处理
  7. udp 视频包网络传输花屏
  8. Mapper方法的执行流程
  9. java/php/net/python/ssm基于web的在线作业批改系统
  10. linux下的跑分工具,Geekbench 5 for Mac(macOS系统跑分工具)