字符串表达式
以下表达式用于计算字符串:
表 27-2:测试字符串表达式
表达式为真如果...
表达式为真如果...
绳子 绳子 不为空。
-n 绳子 长度 绳子 大于零。
-z 绳子 长度 绳子 是零。
string1 = 字符串 2 字符串 1 == 字符串 2
string1 和 string2 是相等的。 可以使用单等号或双等号,但最好使用双等号。
string1 != string2 string1 和 string2 不相等。 string1 > string2 string1 排序后 string2. string1 < string2 string1 排序之前 string2.
警告提供两款控制器:一款是 > 和 < 表达式运算符在与 测试. 如果不是,它们将被 shell 解释为重定向操作符,具有潜在的破坏性结果。 另请注意,虽然 打坏 文档指出排序顺序符合当前语言环境的整理顺序,但事实并非如此。 ASCII (POSIX) 顺序用于 打坏 直到并包括 4.0。
这是一个包含字符串表达式的脚本:
#!/斌/庆典
# test-string: 评估字符串的值 ANSWER=maybe
如果 [ -z "$ANSWER" ]; 然后
回声“没有答案。” >&2 退出1
fi
如果 [ "$ANSWER" = "是"]; 然后回声“答案是肯定的。”
elif [ "$ANSWER" = "no" ]; 然后回声“答案是否定的”。
elif [ "$ANSWER" = "也许" ]; 然后回声“答案是可能的。”
其他
echo “答案是未知的。”
fi
#!/斌/庆典
# test-string: 评估字符串的值 ANSWER=maybe
如果 [ -z "$ANSWER" ]; 然后
回声“没有答案。” >&2 退出1
fi
如果 [ "$ANSWER" = "是"]; 然后回声“答案是肯定的。”
elif [ "$ANSWER" = "no" ]; 然后回声“答案是否定的”。
elif [ "$ANSWER" = "也许" ]; 然后回声“答案是可能的。”
其他
echo “答案是未知的。”
fi
在这个脚本中,我们评估常量 回答. 我们首先判断字符串是否为空。 如果是,我们终止脚本并将退出状态设置为 XNUMX。 请注意应用于 echo 命令的重定向。 这会重定向错误消息“没有答案”。 标准错误,这是处理错误消息的正确方式。 如果字符串不为空,我们评估字符串的值,看它是否等于“是”、“否”或“可能”。 我们通过使用来做到这一点 ELIF,这是“else if”的缩写。 通过使用 ELIF,我们能够构建一个更复杂的逻辑测试。