上一篇
在编写 Linux Shell 脚本时,经常需要对字符串进行比较,比如判断用户输入是否正确、检查文件名是否匹配等。本文将带你一步步了解 Linux Shell字符串比较 的各种方法,即使是编程小白也能轻松上手!
在自动化脚本中,我们常常需要根据不同的字符串内容执行不同的操作。例如:
这些场景都离不开 Shell条件判断 中的字符串比较。
在 Bash 中,最常用的字符串比较方式是使用 test 命令或方括号 [ ]。它们功能相同,只是写法不同。
str1="hello"str2="world"if [ "$str1" = "$str2" ]; then echo "两个字符串相等"else echo "两个字符串不相等"fi 注意:等号 = 两边要有空格!这是初学者常犯的错误。
if [ "$str1" != "$str2" ]; then echo "字符串不相等"fi str=""# 判断是否为空if [ -z "$str" ]; then echo "字符串为空"fi# 判断是否非空if [ -n "$str" ]; then echo "字符串非空"else echo "字符串为空"fi 默认情况下,Shell 字符串比较是 区分大小写 的。例如:
if [ "Hello" = "hello" ]; then echo "相等"else echo "不相等" # 会输出这个fi 如果你希望忽略大小写,可以先将字符串转换为统一格式再比较:
str1="Hello"str2="hello"if [ "${str1,,}" = "${str2,,}" ]; then echo "忽略大小写后相等"fi 其中 ${var,,} 是 Bash 4.0+ 支持的语法,用于将变量转为小写。
"$str" 而不是 $str,防止字符串包含空格时出错。[ "$a" = "$b" ] 正确,["$a"="$b"] 错误。==,但为了兼容性,建议使用 =。下面是一个简单的用户登录验证脚本:
#!/bin/bashread -p "请输入用户名: " usernameif [ "$username" = "admin" ]; then echo "欢迎管理员!"elif [ -z "$username" ]; then echo "用户名不能为空!"else echo "普通用户 $username,您好!"fi 通过本文,你已经掌握了 bash字符串操作 中最核心的比较方法。记住关键点:
[ ] 进行条件判断= 判断相等,!= 判断不等-z 和 -n 判断空/非空多加练习,你很快就能写出健壮的 shell脚本教程 中提到的各种实用脚本!
本文由主机测评网于2025-11-27发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511898.html