在编写 Linux Shell 脚本时,我们经常需要对变量、文件或命令的返回值进行判断。这种判断过程就叫做“参数测试”或“条件测试”。它是实现脚本逻辑控制(如 if 语句、while 循环等)的基础。
本文将带你从零开始,详细讲解 Linux Shell 参数测试 的基本语法、常用操作符以及实际应用场景,即使是编程小白也能轻松上手!
Shell 参数测试就是使用特定语法来检查某个条件是否成立。例如:判断一个变量是否为空、一个文件是否存在、两个数字是否相等……这些判断结果会返回“真”(true)或“假”(false),从而决定脚本接下来执行哪段代码。
在 Bash 中,最常用的测试语法有两种:
[ condition ] —— 方括号形式(注意:方括号两边必须有空格!)[[ condition ]] —— 双方括号形式(功能更强大,推荐用于现代脚本)例如:
if [ -f /etc/passwd ]; then echo "文件存在!"fi 根据测试对象不同,操作符也分为几类:
-f file:判断是否为普通文件-d dir:判断是否为目录-e file:判断文件是否存在-r file:判断文件是否可读-w file:判断文件是否可写-x file:判断文件是否可执行-z string:判断字符串是否为空(长度为0)-n string:判断字符串是否非空str1 = str2:判断两个字符串是否相等str1 != str2:判断两个字符串是否不等num1 -eq num2:等于(equal)num1 -ne num2:不等于(not equal)num1 -lt num2:小于(less than)num1 -le num2:小于等于num1 -gt num2:大于(greater than)num1 -ge num2:大于等于
下面是一个综合使用参数测试的小脚本,用于检查用户输入的文件路径是否有效:
#!/bin/bashread -p "请输入文件路径: " filepathif [ -z "$filepath" ]; then echo "错误:未输入任何内容!"elif [ ! -e "$filepath" ]; then echo "错误:文件或目录不存在!"elif [ -d "$filepath" ]; then echo "这是一个目录。"elif [ -f "$filepath" ]; then echo "这是一个普通文件。" if [ -r "$filepath" ]; then echo "文件可读。" fielse echo "未知类型。"fi [ ] 是命令,因此左右必须有空格,如 [ -f file ] 正确,[-ffile] 错误。[ -f "$file" ]。[[ ]] 中可以使用正则表达式和逻辑运算符(如 &&、||),功能比 [ ] 更强。掌握 Shell 脚本参数判断 是编写健壮自动化脚本的关键一步。通过本文的学习,你应该已经了解了如何使用各种测试操作符来构建条件逻辑。多加练习,你很快就能写出功能强大的 bash 条件测试 脚本!
如果你是刚接触 Linux 的新手,这篇 shell 入门教程 将为你打下坚实基础。继续探索吧,Shell 的世界充满乐趣!
本文由主机测评网于2025-11-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511484.html