SHELL中if的使用
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的使用相关推荐
- shell中十种实现自加的方法
shell中十种实现自加的方法 let "n = $n + 1" : $((n = $n + 1)) ((n = n+1)) n=$(($n + 1)) : $[ n = $n + ...
- 【linux】shell中整数运算的加、减、乘、除
1.使用双括号"(( ))" shell中变量实现加法的方法 d= $(($d + 2)) 例子如下 #!/bin/bash d=0 echo "d=$d"fo ...
- linux shell $0怎么输出,linux shell中$0,$?,$!等的特殊用法
一.Shell脚本中$0.$?.$!.$$.$*.$#.$@等的意义说明 (1)$$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号) (2)$! Shell最后运行的后台Pr ...
- Linux从mysql中读取数据_linux shell中读写操作mysql数据库
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- shell中的函数shell中的数组告警系统需求分析
2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用 ...
- shell中大于、等于、小于
shell中大于.等于.小于 -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge ...
- shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?
每个 Linux 管理员都可能听到过 shell 这个词.你知道什么是 shell 吗? 你知道 shell 在 Linux 中的作用是什么吗? Linux 中有多少个 shell 可用? -- Ma ...
- linux的shell的功能,linux shell中${ }的一些特异功能
linux shell中${ }的一些特异功能,这部分内容是shell中的比较经典的部分之一,建议认真学习,深刻体会. 假设我们定义一个变量为: file=/dir1/dir2/dir3/my.fil ...
- linux shell中小数的运算
对于在Shell中进行小数数字的计算,其实方法有很多,但是常用的方法都有其弱点: 1.bc bc应该是最常用的Linux中计算器了,简单方便,支持浮点. root@localhost:~# echo ...
- shell中执行脚本并显示到终端和保存到日志文件中
我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo "abck" 以上在手动执行脚本中是可以的,如果是编写 ...
最新文章
- 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...
- Thymeleaf中each标签遍历list如何获取index
- 【MyBatis】学习纪要六:动态SQL
- Windows下MariaDB数据库安装图文教程
- String.slice
- 双11,2分钟狂挣20亿的神秘大厂,急招.NET!
- leetcode43. 字符串相乘
- KubeCon 、 CloudNativeCon、Open Source Summit 2019三会交融,看点不断!
- web.config中的ExtensionlessUrlHandler-Integrated-4.0
- 仿微信添加触摸图片阴影效果
- 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
- 2020上海大学生网络安全赛MISC可乐加冰
- python做题记录之切西瓜
- 串口转以太网服务器原理,【干货】自制低成本串口转以太网网关
- 基于内容可变长度分块Content Defined Chunking
- 专家议微软黑屏:目的正当 手段未必正当
- 单片机程序跑飞死机的几种原因
- 数学建模竞赛中的两个技巧
- MQTT Broker 比较与选型
- 中国风味苹果酒市场现状研究分析与发展前景预测报告(2022)
热门文章
- 【1/101】小朱的101次面试之首次面试
- 如何查看自己chrome的版本
- python开发工具排行榜_php开发工具排行2017
- phpstorm激活码注册码序列号
- python里面的报错语句翻译_(翻译)30天学习Python
- springmvc中ajax,springmvc中ajax处理
- udp 视频包网络传输花屏
- Mapper方法的执行流程
- java/php/net/python/ssm基于web的在线作业批改系统
- linux下的跑分工具,Geekbench 5 for Mac(macOS系统跑分工具)