首页 > 系统相关 >Shell笔记:字符串基础使用

Shell笔记:字符串基础使用

时间:2024-01-21 11:33:06浏览次数:27  
标签:Shell 笔记 echo 判断 为空 字符串 fi YES

对于字符串变量的使用,需要加上 $ 进行引用,特别是在 [[ ]] 中作为条件判断时没有使用 $ 的话,无法进行正确的判断。

1. 判断两个字符串是否相同

[[ ]] 使用 ===!= 判断两个字符串是否相等,如果不确定变量的数据类型,但是想要将其转换为字符串再进行比较,可以在变量外边包裹一个双引号再进行判断。

a="abc"
b="bcd"
c="abc"
# 使用=判断字符串是否相等
if [[ ${a} = ${c} ]]; then
        echo "YES-a"
fi
# 使用==判断字符串是否相等
if [[ ${a} == ${c} ]]; then
       echo "YES-c"
fi
# 使用!=判断字符串是否不等
if [[ ${a} != ${b} ]]; then
        echo "YES-b"
fi

d=333
e="333"
# 可以使用双引号将变量包裹起来,将其转换为字符串进行比较判断
if [[ "${d}" == "${e}" ]]; then
        echo "YES-d"
fi

2. 判断一个字符串是否为空(或长度为0)

可以直接对引用的字符串进行判断 if [[ ${var} ]] ,为空就是false,不为空就是true,当然,也可以使用 -z-n 显式的判断字符串是否为空。

a="abc"
b=""
# 使用-z判断字符串是否为空,为空返回true
if [[ -z ${b} ]]; then
        echo "YES-b"
fi
# 使用-n判断字符串是否不为空,不为空返回true
if [[ -n ${a} ]]; then
       echo "YES-a"
fi
# 直接判断引用的字符串是否不为空,不为空返回true
if [[ ${a} ]]; then
        echo "YES-abc"
fi

3. 字符串拼接

拼接字符串最简单的方式就是在外面用一个双引号包裹,里面填充变量值即可。

a="aaa"
b="bbb"
c="ccc"
echo "${a}111${b}222${c}"

标签:Shell,笔记,echo,判断,为空,字符串,fi,YES
From: https://www.cnblogs.com/guyuyun/p/17977658

相关文章

  • Shell笔记:变量基础使用
    语法:为my_var="hello",此处定义了一个值为字符串的变量,需要特别注意的是,等号=两边不能有空格。变量的命名只能使用英文字母,数字和下划线,且首个字符不能以数字开头。变量定义之后也可以在其他地方使用同样的语法给它重新赋值,但是注意,不可以使用$my_var="hi"这种语法,加花括号是......
  • Shell笔记:函数基础使用
    语法如下:[function]func_name(){...[returnint]}function关键字:定义一个函数,function关键字是可选的。语句结束符:函数中每个语句以换行符作为结束,不用使用分号,一行一句即可,分号通常只是用于连接两个语句。return关键字:也是可选的,不指定时自动使用最后一个语句的......
  • NCL论文阅读笔记
    ImprovingGraphCollaborativeFilteringwithNeighborhood-enrichedContrastiveLearning论文阅读笔记Abstract​ 目前的对比方法通常采用随机抽样的方式构建对比对,忽略了用户之间的相邻关系,不能充分利用对比学习作为推荐的潜力​ 为了解决上面的问题,我们提出了一种新的对......
  • P7114 [NOIP2020] 字符串匹配
    Link:https://www.luogu.com.cn/problem/P7114知识点:枚举,结论,Z函数,哈希唉,三年了,三年!!!简述\(T\)组数据,每组数据给定仅由小写字母组成的字符串\(s\),求\(t={(AB)}^iC\)的方案数,其中\(F(A)\leF(C)\),其中\(F(t)\)表示字符串\(t\)中出现奇数次的字符的数量。两种方案不......
  • 如何使用Markdown编写笔记
    Markdown是什么?Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(JohnGruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片......
  • 22String字符串和vector对象的迭代器iterator实现
    String字符串对象的迭代器iterator实现泛型算法参数接收的都是迭代器泛型算法是一组全局的函数,适用于所有容器基于第二点,泛型算法有一套方法可以统一地遍历所有容器的元素classString{public: //嵌套定义iterator类 classiterator { private: char*_p;//没有用......
  • 【数字图像处理_冈萨雷斯】笔记:(一)绪论
    一、绪论1.图像处理分类:低级处理(输入输出都是图像,如降噪、对比度增强、锐化)中级处理(输入图像输出特征,如分割、分类、识别)高级处理(远端位置识别、视觉认知)2.数字图像处理诞生可追溯至20世纪60年代,得益于机器使用和空间项目开发计算机断层成像CT和X射线是数字图......
  • 完全没有数模基础都能看懂的神经网络笔记【零基础系列】
    神经网络算法前言(可跳过)作为数模小白,看了很多讲解新概念新模型的文章,这些文章往往要么讲的很浅不讲原理只讲应用,让人知其然不知其所以然。要么讲的很深小白看不懂,同时总是忽略关键部分,经常性引入陌生概念让初学者疑惑,因此有了本文,任何能熟练掌握线性代数知识且逻辑思维能力尚可......
  • (powershell 7) 安装及 Pycharm 上的配置
    1.windows上更新powershell下载地址(此处需要爬下墙): https://github.com/PowerShell/PowerShell选择一个LTS版本直接手动安装,完成完成后,会自动添加到PATH中,如果没有,可以手动配置#打开powershell$PSVersionTable.PSVersion 2.Pycharm配置powershell Note......
  • [SQLAlchemy] SQLAlchemy学习笔记: 基础使用
    InstallationpipinstallSQLAlchemymakesurethatissql-alchemy2创建引擎数据库url格式一般为dialect+driver://username:password@host:port/database#PyMySQL-python里的数据库驱动engine=create_engine("mysql+pymysql://scott:tiger@localhost/foo?charset=utf......