linux脚本 X$ var,为什么Shell脚本比较经常使用x $ VAR = xyes?
发布日期:2021-09-12 14:09:16 浏览次数:1 分类:技术文章

本文共 524 字,大约阅读时间需要 1 分钟。

我知道这个约定有两个原因:

http://tldp.org/LDP/abs/html/comparison-ops.html

在复合测试中,即使引用字符串变量也可能不够。如果$ string为空,[-n“ $ string” -o“ $ a” =“ $ b”]可能会导致某些版本的Bash出错。安全的方法是在可能为空的变量后面添加一个额外的字符[[x $ string“!= x -o” x $ a“ =” x $ b“](“ x的”取消)。

其次,在除Bash之外的其他shell中,尤其是较旧的shell中,不存在用于测试空变量的测试条件(例如“ -z”),因此:

if [ -z "$SOME_VAR" ]; then

echo "this variable is not defined"

fi

如果您希望在各种UNIX环境中实现可移植性,而在这些环境中您不能确定默认的shell是Bash以及它是否支持-z测试条件,那么使用Bash会更安全,如果使用[ x $ SOME_VAR“ =” x“],因为那样总是可以达到预期的效果。从本质上讲,这是一个用于查找空变量的古老的Shell脚本技巧,尽管有更清洁的方法可用,但今天它仍用于向后兼容。

转载地址:https://blog.csdn.net/weixin_39545310/article/details/116669388 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux系统的终端窗口,在Linux系统桌面嵌入终端窗口
下一篇:linux下添加删除路由命令行,linux – 路由添加/删除后的计时问题(路由未使用)

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月28日 00时05分32秒