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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年03月28日 00时05分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
P2053 [SCOI2007]修车(逆向思维分层建图)
2019-04-27
P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查
2019-04-27
(2020多校)H.Minimum-cost Flow(费用流的增广路)
2019-04-27
n^3的KM完美匹配算法(bfs迭代版本)
2019-04-27
点双连通分量[模板]
2019-04-27
对斜率优化的一点理解(围绕图讲解)
2019-04-27
P2365 任务安排(斜率优化)
2019-04-27
2-SAT[模板]
2019-04-27
最大权闭合子图(最小割原理)
2019-04-27
1400D. Zigzags(dp转移emm)
2019-04-27
1400E. Clear the Multiset(决策取优,或叫分治?)
2019-04-27
1400B. RPG Protagonist(贪心枚举)
2019-04-27
无源汇有上下界可行流[loj模板]
2019-04-27
有源汇有上下界最大流【模板】loj116
2019-04-27
【模板】有源汇上下界最大流
2019-04-27
有源汇上下界最小流[模板]
2019-04-27
P3047 [USACO12FEB]Nearby Cows G(容斥+dp)
2019-04-27
P3205 [HNOI2010]合唱队(区间dp)
2019-04-27
P2224 [HNOI2001]产品加工(进程dp)
2019-04-27
P1646 [国家集训队]happiness(最小割模型)
2019-04-27