尝试了有3种方法:

1.使用“=~”符号,注意前后必须要有空格!

** 可以输出正确结果,被匹配的字符串必须要有引号括起来!**

[clouder@ana53 bin]$ a1='hello.world'
[clouder@ana53 bin]$ a2='helloworld'
[clouder@ana53 bin]$ b='.'
[clouder@ana53 bin]$ if [[ ${a1} =~ '.' ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} =~ '.' ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a1} =~ "." ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} =~ "." ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a1} =~ "${b}" ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} =~ "${b}" ]];then echo "yes";else echo "no";fi
no

** 不能输出正确结果 **

[clouder@ana53 bin]$ a1='hello.world'
[clouder@ana53 bin]$ a2='helloworld'
[clouder@ana53 bin]$ b='.'
[clouder@ana53 bin]$ if [[ ${a1} =~ . ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} =~ . ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a1} =~ ${b} ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} =~ ${b} ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a1} =~ '${b}' ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a2} =~ '${b}' ]];then echo "yes";else echo "no";fi
no

2.使用”==“加通配符wildcard,注意等号前后必须有空格,注意,通配符跟正则表达式有所区别,*表示匹配 0 或多个字符

** 可以输出正确结果 **

[clouder@ana53 bin]$ a1='hello.world'
[clouder@ana53 bin]$ a2='helloworld'
[clouder@ana53 bin]$ if [[ ${a1} == *.* ]];then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if [[ ${a2} == *.* ]];then echo "yes";else echo "no";fi
no

** 不能输出正确结果 ,通配符不能用括号括起来!**

[clouder@ana53 bin]$ a1='hello.world'
[clouder@ana53 bin]$ a2='helloworld'
[clouder@ana53 bin]$ if [[ ${a2} == "*.*" ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a1} == "*.*" ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a1} == '*.*' ]];then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if [[ ${a2} == '*.*' ]];then echo "yes";else echo "no";fi
no

3.使用echo + grep -q 选项

** 使用这种方法时匹配是否有"."会不正常,所以我们换成匹配普通字符,有没有括号都可以 **

[clouder@ana53 bin]$ a1='hello.world'
[clouder@ana53 bin]$ a2='helloworld'
[clouder@ana53 bin]$ a3="helloworlda"
[clouder@ana53 bin]$ if ( echo ${a1} |grep -q a );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a2} |grep -q a );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a3} |grep -q a );then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if ( echo ${a1} |grep -q 'a' );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a2} |grep -q 'a' );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a3} |grep -q 'a' );then echo "yes";else echo "no";fi
yes
[clouder@ana53 bin]$ if ( echo ${a1} |grep -q "a" );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a2} |grep -q "a" );then echo "yes";else echo "no";fi
no
[clouder@ana53 bin]$ if ( echo ${a3} |grep -q "a" );then echo "yes";else echo "no";fi
yes

shell:判断某个变量是否包含字符串/变量的方法的更多相关文章

  1. Java学习--数组--判断数组中是否包含某个元素的方法

    package zaLearnpackage; import org.apache.commons.lang3.ArrayUtils; import java.util.Arrays; import ...

  2. SQL Server 中字符串中包含字符串变量的表示方法

    在代码中有如下的需求:需要在数据库中使用 in 关键字做删除的时候,又需要使用到参数化,参数又是字符串,所以使用的时候就按照如下方式 StringBuilder sql = new StringBui ...

  3. js中判断数组中是否包含某元素的方法

    方法一:array.indexOf(item,start):元素在数组中的位置,如果没与搜索到则返回 -1. 参数 描述 item 必须.查找的元素. start 可选的整数参数.规定在数组中开始检索 ...

  4. bat 判断变量字符串中是否包含字符串

    bat 判断变量字符串中是否包含字符串 @echo off rem way 1 set str=machine-order-service set matchStr=orderd echo %str% ...

  5. 【转】shell学习笔记(三)——引用变量、内部变量、条件测试、字符串比较、整数比较等

    1.env显示当前的环境变量 2.PS1='[\u@\h \w \A] \$' 可以设置bash的命令与提示符. 3.echo $$ 显示当前bash的PID号 4.echo $?显示上一条指令的回传 ...

  6. 弄懂linux shell对包含$的变量的执行过程?

    参考: http://www.linuxidc.com/Linux/2012-04/58095.htm 在包含变量的命令中, 命令是怎么执行的呢? 首先, 它会原封不动的, 只是按原样替换变量的内容. ...

  7. JS判断字符串变量是否含有某个字串的实现方法

    JS判断字符串变量是否含有某个字串的实现方法 varCts = "bblText"; if(Cts.indexOf("Text") > 0 ){ aler ...

  8. shell判断一个变量是否为空方法总结

    shell中如何判断一个变量是否为空 shell编程中,对参数的错误检查项中,包含了变量是否赋值(即一个变量是否为空),判断变量为空方法如下: 1.变量通过" "引号引起来 1 2 ...

  9. shell 从变量中切割字符串

    1. 在shell变量中切割字符串 shell中截取字符串的方法有很多中,${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${pa ...

  10. 定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素, 判断是否为空,清除集合, 返回集合里元素的个数等常用操作。

    package com.lanxi.demo2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...

随机推荐

  1. 外部引入css样式报错Resource interpreted as Stylesheet but transferred with MIME type html/text

    Resource interpreted as Stylesheet but transferred with MIME type html/text 解决方法: 1.将content-type改为t ...

  2. MySQL 的 NULL 值是怎么存储的?

    大家好,我是小林. 之前有位读者在面字节的时候,被问到这么个问题: 如果你知道 MySQL 一行记录的存储结构,那么这个问题对你没什么难度. 如果你不知道也没关系,这次我跟大家聊聊 MySQL 一行记 ...

  3. 学生管理系统Python

    student1=[ {1:'lucy','age':17,'sex':'n','Pnum':1111111}, {2:'tom','age':17,'sex':'m','Pnum':2222222} ...

  4. 【每日一题】【栈】2022年2月2日-NC40 两个链表生成相加链表

    描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. 答案:栈 import java.util.*; /* ...

  5. 什么是NineData?突然就火了

    NineData 是集成了 SQL 开发.数据复制.数据备份.数据对比多个模块的云服务,支持混合云(自建库+云数据库的业务架构)和多云(多个不同云厂商数据库组成的业务架构)架构下的企业数据管理,大幅降 ...

  6. What's new in Dubbo 3.1.4 and 3.2.0-beta.3

    在 12 月 22 日,Dubbo 3.1.4 和 3.2.0-beta.3 正式通过投票发布.本文将介绍发布的变化一览. Dubbo 3.1.4 版本是目前 Dubbo 3 的最新稳定版本,我们建议 ...

  7. Redis基本操作(2)

    一.list类型 列表的元素类型为string 按照插⼊顺序排序 增加.修改 例1:在左侧插⼊数据 lpush key value1 value2 ... 例2:在右侧插⼊数据 rpush key v ...

  8. JavaScript:输入语法:prompt与confirm

    prompt prompt有两个参数: 第一个参数会显示在弹窗的输入框的上方: 第二个参数是可选的,会显示在输入框内,是一个初始值: 我们在输入框内输入的任何内容,都会作为返回值,返回给变量resul ...

  9. Introduction & Directory

    一个日常划水的高中生而已啦,我不会承认这个博客的CSS是copy的 一个貌似并不准确的图-- <算法竞赛进阶指南>学习: 动态规划: DP经典例题--LIS&LCS 洛谷题解: 搜 ...

  10. JavaWeb项目编译前后的目录结构

    JavaWeb项目编译前后的目录结构 编译前 页面和视图都放在webapp目录下 编译后 webapps WEB-INF