shell编程之if语句[通俗易懂]

shell编程之if语句[通俗易懂]shell编程之if判断[TOC]1.整数比较2.字符串比较3.举例1.数字比较2.字符串比较4.Other

大家好,又见面了,我是你们的朋友全栈君。

shell编程之if判断

1.整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]   
-ne 不等于,如:if [ "$a" -ne "$b" ]   
-gt 大于,如:if [ "$a" -gt "$b" ]   
-ge 大于等于,如:if [ "$a" -ge "$b" ]   
-lt 小于,如:if [ "$a" -lt "$b" ]   
-le 小于等于,如:if [ "$a" -le "$b" ]   
<   小于(需要双括号),如:(("$a" < "$b"))   
<=  小于等于(需要双括号),如:(("$a" <= "$b"))   
>   大于(需要双括号),如:(("$a" > "$b"))   
>=  大于等于(需要双括号),如:(("$a" >= "$b"))   

2.字符串比较

= 等于,如:if [ "$a" = "$b" ]   
== 等于,如:if [ "$a" == "$b" ],与=等价   

3.举例

1.数字比较

#!/bin/bash  
  
i=6  
a=10  
  
if [ $a -eq 10 ]  
then  
    echo "a = 10"  
fi  
  
if [ $a -ne $i ]  
then  
    echo "a != $i"  
fi  
  
if [ $a -gt $i ]  
then   
    echo "a > i"  
fi  
  
if [ $a -lt $i ]  
then  
    echo "a < i"  
else  
    echo "a > i"  
fi  
  
if(("$a" > "$i"))  
then  
    echo "(())a>i"  
fi  
  
if(($a != $i))  
then  
    echo "(())a!=i"  
fi  

2.字符串比较

#!/bin/bash  
  
a="123"  
b="1234"  
c="123"  
  
if [ "$a"x != "$b"x ]  
then  
    echo "a != b"  
fi  
  
if [ "$a"x = "$c"x ]  
then  
    echo "a == c"  
fi  

4.Other

-e                          文件存在
-a                          文件存在(已被弃用)
-f                          被测文件是一个regular文件(正常文件,非目录或设备)
-s                          文件长度不为0
-d                          被测对象是目录
-b                          被测对象是块设备
-c                          被测对象是字符设备
-p                          被测对象是管道
-h                          被测文件是符号连接
-L                          被测文件是符号连接
-S(大写)                    被测文件是一个socket
-t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
-r                          文件具有读权限,针对运行脚本的用户
-w                          文件具有写权限,针对运行脚本的用户
-x                          文件具有执行权限,针对运行脚本的用户
-u                          set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
-k                          设置粘贴位
-O                          运行脚本的用户是文件的所有者
-G                          文件的group-id和运行脚本的用户相同
-N                          从文件最后被阅读到现在,是否被修改

f1 -nt f2                   文件f1是否比f2新
f1 -ot f2                   文件f1是否比f2旧
f1 -ef f2                   文件f1和f2是否硬连接到同一个文件

二元比较操作符,比较变量或比较数字

整数比较:
-eq                       等于            if [ "$a" -eq "$b" ]
-ne                       不等于          if [ "$a" -ne "$b" ]
-gt                       大于            if [ "$a" -gt "$b" ]
-ge                       大于等于        if [ "$a" -ge "$b" ]
-lt                       小于            if [ "$a" -lt "$b" ]
-le                       小于等于        if [ "$a" -le "$b" ]

<                         小于(需要双括号)           (( "$a" < "$b" ))
< =                        小于等于(...)                (( "$a" <= "$b" ))
>                         大于(...)                    (( "$a" > "$b" ))
> =                        大于等于(...)                (( "$a" >= "$b" ))



字符串比较:
=                         等于           if [ "$a" = "$b" ]
==                        与=等价
!=                        不等于         if [ "$a" = "$b" ]
<                         小于,在ASCII字母中的顺序:
                          if [[ "$a" < "$b" ]]
                          if [ "$a" \< "$b" ]         #需要对<进行转义
>                         大于

-z                        字符串为null,即长度为0
-n                        字符串不为null,即长度不为0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155343.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 经典面试题 HTTPS和HTTP有什么区别?[通俗易懂]

    经典面试题 HTTPS和HTTP有什么区别?[通俗易懂]使用HTTPS协议可认证用户和服务器,确保数据发送正确;HTTPS协议要比http协议安全,防止数据不被窃取、改变,确保数据的完整性;HTTPS是现行架构下比较安全的解决方案,大幅增加了中间人攻击的成本。相比之HTTP,HTTPS已经是现行架构下比较安全的解决方案,也需要我们再不断学习,跟上时代技术的迭代。

    2022年10月16日
    3
  • matlab geotiff,(Not recommended) Read GeoTIFF file[通俗易懂]

    matlab geotiff,(Not recommended) Read GeoTIFF file[通俗易懂]geotiffread(Notrecommended)ReadGeoTIFFfilegeotiffreadisnotrecommended,exceptwhenreadingaGeoTIFFfilefromaURLorwhenreadingmultipleimagesfromthesamefile.Inothersituations,user…

    2022年9月27日
    2
  • Linux开机启动nginx「建议收藏」

    Linux开机启动nginx「建议收藏」在/etc/init.d下创建文件nginxvim/etc/init.d/nginxnginx官方脚本修改配置nginx=”/usr/local/nginx/sbin/nginx”#修改成nginx执行程序的路径NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”#修改成nginx.conf文件的路径设置文件的执行权限chmoda+x/etc/init.d/nginx可以通过下面指令控制启动停止/etc/init..

    2022年10月6日
    3
  • linux出现e325错误,centos系统使用VI访问文件时候出现E325: ATTENTION类的错误提示处理方法…[通俗易懂]

    linux出现e325错误,centos系统使用VI访问文件时候出现E325: ATTENTION类的错误提示处理方法…[通俗易懂]错误出现情况的是,在我们用VI编辑文件时候在文件加载时候出现错误提示,需要在安任意键后才能正常编辑.错误提示类似如下:E325:ATTENTIONFoundaswapfilebythename”/etc/sysconfig/.iptables.swp”ownedby:rootdated:SunMar1209:53:432017filename:/etc/sy…

    2022年5月19日
    49
  • RC有源滤波器之带通滤波器(四)

    RC有源滤波器之带通滤波器(四)记录一下,方便以后翻阅~过去的滤波器都是由R、L、C等无源元件组成,称为无源滤波器。现在的滤波器大都是由R、C元件与有源器件(如运算放大器)组成,称为RC有源滤波器。常见滤波器类型有低通滤波器、高通滤波器、带通滤波器、带阻滤波器、全通滤波器等。RC有源带通滤波器带通滤波器允许某一频率范围内的信号通过,衰减或抑制此频率范围以外的频率信号。理想带通滤波器的模频特性如下图所示,Wc2和Wc1分别为上下截止频率。RC有源带通滤波器器电路如下图所示:电压传输函数为:其模:…

    2022年6月7日
    48
  • 第二章平稳时间序列模型——AR(p),MA(q),ARMA(p,q)模型及其平稳性[通俗易懂]

    第二章平稳时间序列模型——AR(p),MA(q),ARMA(p,q)模型及其平稳性[通俗易懂]1白噪声过程:零均值,同方差,无自相关(协方差为0)以后我们遇到的efshow如果不特殊说明,就是白噪声过程。对于正态分布而言,不相关即可推出独立,所以如果该白噪声如果服从正态分布,则其还将互相

    2022年8月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号