如何在Bash Shell脚本中比较字符串
时间:2020-03-05 15:31:40 来源:igfitidea点击:
处理字符串是任何编程语言的一部分。
Bash shell脚本没有任何不同。
即使是语法也很差不多。
在此快速教程中,将介绍如何在Bash shell 脚本中比较字符串。
Bash String比较
以下是我们在Bash中比较字符串。
if [ "$string1" == "$string2" ]
我们还可以直接使用字符串而不是使用变量。
if [ "$string1" == "This is my string" ]
让我用正确的例子向我们展示。
检查两个字符串是否相等
如果我们想检查两个字符串是否相平,这是一个示例:
#!/bin/bash string1="MyString" string2="MyString" if [ "$string1" == "$string2" ] then echo "Equal Strings" else echo "Strings not equal" fi
提示:注意空格
[
和变量名称和平等运算符==之间必须有一个空格。
如果我们在此错过任何空格,我们将看到错误的错误,如"Unary Operator"或者"遗失的"")"。
检查BASH中的字符串是否不等于
而不是检查质量,让我们相反并检查不平等。
Bash还提供否定运算符,以便在shell脚本中轻松使用"IF不等于"条件。
if [ "$string1" != "Not MyString" ]
整个示例如下所示:
#!/bin/bash string1="MyString" if [ "$string1" != "Not MyString" ] then echo "Not Equal Strings" else echo "Strings equal" fi
检查字符串是否为null或者在bash中为空
与像C++这样的其他语言不同,在bash中,我们可以检查字符串是否为null或者包含一个命令的空项:
if [ -z "$VAR" ]
-z实际检查变量的长度是否为零。
如果未设置变量,或者如果它为空(等于""),则长度将为零,因此条件将返回true。
这里可以看到完整的例子:
#!/bin/bash string1= string2="" if [ -z "$string1" ] then echo "Null Strings" fi if [ -z "$string2"] then echo "Empty String" fi
关于在Bash脚本中使用单支架'[]'和双支架''
我们还可以使用具有双括号的IF语句如下:
if [[ "$string1" == "My String" ]]
单个括号是旧的POSIX公约,它有一些缺点。
如果不使用变量周围的双引号并且变量未定义,则会从代码中消失,这将导致语法错误。
if [ $string1 == "My String" ]
如果变量$string1为空或者未在上面的代码中定义,则该行将相同
if [ == "$string2" ]