我正在写一些“如果那么”的陈述,发现在我看来是一种奇怪的行为。经过调查,我意识到它归结为我正在进行的比较的退出代码。我在下面的代码片段中说明了我的发现。
如你看到的
rc=1
[ $rc -eq 0 ]
es_num=$?
[ $rc=0 ]
es_str=$?
echo "es_num is $es_num"
echo "es_str is $es_str"
输出
es_num is 1
es_str is 0
是否有任何文档(最好来自 POSIX 标准)讨论测试构造的退出状态-eq
和=
测试构造中的差异?
编写条件语句时应该注意什么?对此有哪些最佳实践?
可移植代码优于 Bash 代码(我正在使用)。