处理字符串是任何编程语言的一部分。 Bash shell 脚本也不例外。 甚至语法也几乎相同。
在本快速教程中,我将向您展示如何比较 Bash shell 脚本中的字符串。
Bash 字符串比较
这是在 Bash 中比较字符串的方法。
if [ "$string1" == "$string2" ]
您也可以直接使用字符串而不是使用变量。
if [ "$string1" == "This is my string" ]
让我用适当的例子向你展示。
检查两个字符串是否相等
如果你想检查两个字符串是否相等,这里是 example:
#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
echo "Equal Strings"
else
echo "Strings not equal"
fi
提示:注意空格
之间必须有空格 [
and the variable name and the equality operator ==. If you miss any of the spaces here, you’ll see an error like ‘unary operator expected’ or missing `]’。
检查 Bash 中的字符串是否不相等
与其检查质量,不如反其道而行之,检查不等式。 Bash 还提供了否定运算符,以便您可以轻松地在 shell 脚本中使用“如果不等于”条件。
if [ "$string1" != "Not MyString" ]
完整的 example 看起来像这样:
#!/bin/bash
string1="MyString"
if [ "$string1" != "Not MyString" ]
then
echo "Not Equal Strings"
else
echo "Strings equal"
fi
在 Bash 中检查字符串是否为空或为空
与 C++ 等其他一些语言不同,在 Bash 中,您可以使用一个命令检查字符串是否为空或为空:
if [ -z "$VAR" ]
-z 实际上检查变量的长度是否为零。 如果变量未设置或为空(等于“”),则长度为零,因此条件将返回真。
一套完整的 example 可以在这里看到:
#!/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" ]]
单括号是旧的 正则表达式 约定俗成,也有不足之处。 如果您不使用双引号将变量括起来并且变量未定义,它将从代码中消失,这将导致语法错误。
if [ $string1 == "My String" ]
如果变量 $string1 为空或在上面的代码中没有定义,那行将等同于
if [ == "$string2" ]
结论
我希望这个快速的小教程可以帮助您比较字符串 bash 外壳脚本。 我建议阅读另一个快速教程 bash 睡眠命令也是如此。
如果您有任何问题或建议,请随时在下面发表评论。