shell字符串比较说明

1 完全比较方法(完全匹配)

if [ "$soure" == "$dest" ]; then

echo "is =="

else

echo "is !="

fi

if语句中的==判断字符串是否相等:

1、使用完全匹配方式;

2、两边的双引号都是可有可无的,但当字符串为空的时候就会报错,提示unary operator expected,因此,需要加入双引号;

3、也可以使用=号,但==更合适一些,防止误解,避免误认为是在进行赋值操作。

2 模糊比较方法(正则表达式)

if [[ "$soure" == dest* ]]; then

echo "is =="

else

echo "is !="

fi

当if语句中的单中括号[]变成双中括号[[]]时,支持模糊匹配,此时:

1、模糊匹配规则不能添加双引号,否则无效,会被当做普通字符串进行比较。

2、被比较的字符串,可以加双引号,也可以不加,当字符串为空也不会报错,但是为了统一规范,防止遗漏,因此,推荐还是加入双引号。

shell中字符串比较和模糊比较说明的更多相关文章

  1. shell中字符串操作【转】

    转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html 我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,当然shell编程也不例 ...

  2. Shell中字符串、数值的比较

    原文:http://apps.hi.baidu.com/share/detail/31263915 在shell中字符串与数值的比较方法是不同的,要注意区分 整数比较:    -eq       等于 ...

  3. 在shell 中字符串,文件,数字的比较

    hadoop fs -test -e /path/exist ] ;then echo 'exist' else echo 'Error! path is not exist' fi 在shell中如 ...

  4. Shell中字符串的切割、拼接、比较、替换

    [截取] 一.Linux shell 截取字符变量的前8位,有方法如下: expr substr “$a” 1 8 : 二.按指定的字符串截取 第一种方法: ${varible##*string} # ...

  5. Shell中字符串分割的三种方法

    问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5 特征:在字符串中没有空格 解决方法1: #!/bin/bash var=’1,2,3,4,5’ var=${var// ...

  6. shell中字符串基本用法

    前言 今天在写脚本时,发现前阶段使用过的一些用法还是需要去百度查找,并且找到的答案还需要自己去筛选,耽误写脚本时间,这一篇对字符串之间的比较和逻辑判断都非常详细,借鉴他人之作,资源共享. 本片主要说明 ...

  7. Shell 中字符串变量的赋值注意点

    1. 变量赋值 语法:var="saaaa" PS: 等号两边不能有空格 2. 脚本示例如下: #!/bin/sh # Get bug activity info # usage ...

  8. shell中字符串截取

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var="User:123//321:/home/dir" 1. # 号截取,删除左边字符,保留右边字符. [root@z ...

  9. ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接

    问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...

  10. shell中使用expect命令进行远程执行命令脚本

    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程. 注意: 1.脚本的执行方法与bash shell不一样,比如:expect example.sh 2.向一个脚 ...

随机推荐

  1. OpenCL架构

    OpenCL提供了一种统一的编程接口,使得程序员可以编写一次代码,然后在多种处理器上运行. 平台模型 OpenCL平台总是包括一个宿主机(host).宿主机与OpenCL程序外部的环境交互,包括I/O ...

  2. DNShell

    DNShell 一款基于DNS C2隧道的反弹shell工具. 支持 功能: 支持DNS-recordA-直连型 的C2隧道. 目标: Windows下基于Powershell的反弹. Linux下基 ...

  3. flink同步MySQL数据的时候出现内存溢出

    flink同步MySQL数据的时候出现内存溢出 背景:需要将1000w的某类型数据同步到别的数据源里面,使用公司的大数据平台可以很快处理完毕,而且使用的内存只有很少很少量(公司的大数据平台的底层是fl ...

  4. 你在使用 KubeSphere 吗?

    如果你正在使用 KubeSphere,欢迎在社区分享你的使用和实践经验,赢取 KubeSphere 周边礼品(T恤.帆布袋.徽章等)以及 Kubernetes 技术书籍. 为什么我们要征集用户案例? ...

  5. 云原生爱好者周刊:OCI 镜像管理新工具 — regclient

    云原生一周动态要闻: OpenKruise v1.0 发布 SlashData 最新报告:560 万开发者使用 Kubernetes,一年增长 67% WasmEdge 0.9.0 发布 Securi ...

  6. python报错:If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0

    相关: https://stackoverflow.com/questions/72441758/typeerror-descriptors-cannot-not-be-created-directl ...

  7. KVM的基本使用

    1. 虚拟化介绍 虚拟化是云计算的基础.简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU.内存.IO 硬件资源,但逻辑上虚拟机之间是相互隔离的. 物理机我们一般称为 ...

  8. 洛谷P4913【深基16.例3】二叉树深度题解优化Pro Max版

    原题指路 原题解指路 前情提要:不懂什么是 DFS 的小伙伴可以看看一下这段文字(摘自OIwiki): DFS 最显著的特征在于其 递归调用自身.同时与 BFS 类似,DFS 会对其访问过的点打上访问 ...

  9. element-ui table 实现表格展开行每次只能展开一行

    1.table 部分 :row-key='getRowKeys':expand-row-keys="expands"@expand-change="expandSelec ...

  10. zookeeper 分布式锁服务

    分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡.当大量的行锁.表锁.事务充斥着数据库的时候.一般web应用很多的瓶颈都在数据库上,这里给大家介绍的是减轻数据库锁负担的一种 ...