如何在Linux 系统上比较Bash 脚本中的字符串?

举报
wljslmz 发表于 2022/07/28 01:04:49 2022/07/28
【摘要】 在Bash 脚本中比较字符串的需求相对普遍,可用于在继续执行脚本的下一部分之前检查某些条件。 字符串可以是任何字符序列。要测试两个字符串是否相同,两个字符串必须包含完全相同的字符且顺序相同,它可以是一个...

在Bash 脚本中比较字符串的需求相对普遍,可用于在继续执行脚本的下一部分之前检查某些条件。

字符串可以是任何字符序列。要测试两个字符串是否相同,两个字符串必须包含完全相同的字符且顺序相同,它可以是一个词或整个句子,例如,string one等于string one但不等于string two。

在本教程中,我们将向您展示如何在Linux 系统上比较Bash 脚本中的字符串,我们将在一个简单的 if/else Bash 脚本的上下文中展示这一点,这样您就可以看到在开发脚本时测试这种情况是如何工作的。

在本教程中,您将学习:

  • 如何在 Bash 中比较字符串
  • 比较字符串的 if/else Bash 脚本示例

Bash 脚本:字符串比较示例

例1

在 Bash 脚本中,您通常会将一个或两个字符串存储为变量,然后再进行比较。在此示例中,我们使用=运算符和if语句来确定两个字符串是否彼此相等。该if语句将继续其第一个子句或else原因,具体取决于字符串是否相等。

#!/bin/bash

string1="apples"
string2="oranges"

if [ "$string1" = "$string2" ]; then
	echo "The two strings are equal."
else
	echo "The two strings are not equal."
fi

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这是我们执行脚本时的结果:

$ ./test.sh
The two strings are not equal.

  
 
  • 1
  • 2

例2

我们还可以使用运算符来测试两个字符串是否不相等!=。

#!/bin/bash

string1="apples"
string2="oranges"

if [ "$string1" != "$string2" ]; then
	echo "Strings are different."
else
	echo "Strings are not different."
fi

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这是我们执行脚本时的结果:

$ ./test.sh
Strings are different.

  
 
  • 1
  • 2

例3

我们可以与字符串一起使用的另一个运算符是-z,它允许我们测试字符串长度是否为 0。

#!/bin/bash

string=""

if [[ -z $string ]]; then
	echo "The string is empty."
else
	echo "The string is not empty."
fi

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这是我们执行脚本时的结果:

$ ./test.sh
Strings are different.

  
 
  • 1
  • 2

例4

-n运算符还可用于测试字符串长度是否不为零。

#!/bin/bash

string="hello"

if [[ -n $string ]]; then
    echo "The string is not empty."
else
    echo "The string is empty."
fi

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这是我们执行脚本时的结果:

$ ./test.sh
Strings are different.

  
 
  • 1
  • 2

例5

我们还可以使用小于<和大于>运算符来检查一个字符串是否比另一个字符串多。

#!/bin/bash

string1="apples"
string2="oranges"

if [[ "$string1" > "$string2" ]]; then
	echo "$string1 has more characters than $string2."
else
	echo "$string2 has more characters than $string1."
fi

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这是我们执行脚本时的结果:

$ ./test.sh
Strings are different.

  
 
  • 1
  • 2

总结

在本教程中,我们了解了如何在 Bash 脚本中比较字符串,尤其是在 Bash 脚本的上下文中if/else。当然,此功能可以扩展到更健壮的脚本,这些脚本可以读取用户的输入或使用 case 运算符等。这些都是在 Bash 中比较字符串所需的所有比较方法。

文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43025343/article/details/123316815

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。