如何在 Linux 中检查字符串是否为空

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习在 Linux 中处理字符串的基本技术。你将了解如何使用 test -z 命令有效地检查字符串是否为空,这是 shell 脚本中条件逻辑的一项关键技能。此外,你将练习使用功能多样的 echo 命令显示字符串内容,并探索如何使用 expr length 命令测量字符串的长度。这些实践练习将让你在 Linux 环境中获得操作和分析字符串的实际经验。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/TextProcessingGroup -.-> linux/expr("Evaluate Expressions") subgraph Lab Skills linux/echo -.-> lab-558767{{"如何在 Linux 中检查字符串是否为空"}} linux/test -.-> lab-558767{{"如何在 Linux 中检查字符串是否为空"}} linux/expr -.-> lab-558767{{"如何在 Linux 中检查字符串是否为空"}} end

使用 test -z 测试字符串是否为空

在这一步中,你将学习如何在 Linux 中使用带有 -z 选项的 test 命令来检查字符串是否为空。这是在 shell 脚本中处理字符串时的一项基本操作。

test 命令用于计算条件表达式。-z 选项专门用于检查字符串的长度是否为零。如果字符串为空,则测试结果为真;否则为假。

让我们在终端中尝试一下。首先,我们将定义一个空字符串变量。在 shell 脚本中,你可以通过输入变量名,后跟等号 (=),然后是值来定义变量。等号周围不应有空格。

输入以下命令来定义一个名为 my_string 的空字符串变量:

my_string=""

现在,让我们使用 test -z 命令来检查 my_string 是否为空。test 命令本身不会产生输出;其结果用于控制脚本的流程(你将在后面学习)。不过,我们可以通过使用 echo $? 检查上一个命令的退出状态来查看其结果。退出状态为 0 表示成功(真),非零状态表示失败(假)。

输入以下命令来测试 my_string 是否为空:

test -z "$my_string"

运行 test 命令后,检查其退出状态:

echo $?

由于 my_string 为空,test -z 命令的计算结果应为真,echo $? 命令应输出 0

现在,让我们定义一个非空字符串:

another_string="Hello"

并测试它是否为空:

test -z "$another_string"

检查退出状态:

echo $?

这次,由于 another_string 不为空,test -z 命令的计算结果应为假,echo $? 命令应输出 1

理解如何测试空字符串对于编写能够正确处理不同输入的健壮 shell 脚本至关重要。

使用 echo 显示字符串内容

在这一步中,你将学习如何使用 echo 命令显示字符串变量的内容。正如你在第一个实验中看到的,echo 用于将文本打印到终端。当与变量一起使用时,它会打印变量中存储的值。

回顾上一步,我们定义了一个名为 another_string 的变量,并为其赋值为 "Hello"。

another_string="Hello"

要显示这个变量的内容,你需要使用 echo 命令,后跟美元符号 ($) 和变量名。美元符号很重要,它告诉 shell 你想要使用变量的 ,而不是将变量名本身作为字面字符串。

输入以下命令来显示 another_string 的内容:

echo "$another_string"

你应该会看到以下输出:

Hello

你还可以将变量包含在一个更长的字符串中。这是一种将变量值嵌入消息中的常用方法。

输入以下命令:

echo "The value of the string is: $another_string"

你应该会看到以下输出:

The value of the string is: Hello

通常建议在变量名或整个字符串周围使用双引号 (")。这有助于避免变量值中出现空格或特殊字符时产生的问题。

让我们尝试显示我们之前定义的空字符串 my_string

echo "$my_string"

由于 my_string 为空,此命令将仅输出一个空行。

echo 命令是 shell 脚本中显示信息和调试的基本工具。你将经常使用它来查看变量的值和命令的输出。

使用 expr length 测量字符串长度

在这一步中,你将学习如何使用带有 length 运算符的 expr 命令来测量字符串的长度。expr 命令用于计算表达式,包括执行数学运算和字符串操作。

expr 中的 length 运算符以一个字符串作为参数,并返回该字符串中的字符数量。

让我们使用我们在前面步骤中定义的 another_string 变量,它的值为 "Hello"。

another_string="Hello"

要查找 another_string 的长度,你需要使用 expr 命令,后跟 length 运算符和变量的值。记得在变量名前使用美元符号 ($) 来获取其值。

输入以下命令:

expr length "$another_string"

你应该会看到以下输出,这是 "Hello" 中的字符数量:

5

现在,让我们尝试查找空字符串 my_string 的长度:

my_string=""

输入命令:

expr length "$my_string"

输出应该是:

0

这证实了空字符串的长度确实为零。

expr length 命令是在 shell 脚本中获取字符串字符数的一种简单方法。这在各种场景中都很有用,例如验证输入长度或遍历字符。

总结

在这个实验中,你学习了如何在 Linux 中使用 test -z 命令检查字符串是否为空。如果字符串为空,该命令的计算结果为真(退出状态码为 0);否则为假(退出状态码为 1)。你练习了定义空字符串变量和非空字符串变量,并通过 echo $? 检查退出状态来验证 test -z 的输出。你还学习了如何使用 echo 命令显示字符串变量的内容,以及如何使用 expr length 命令测量字符串的长度。这些基本操作对于在 shell 脚本中处理字符串至关重要。