答案1
零整数值的计算结果为错误的在大多数通用编程语言中用于布尔上下文时。这一事实意味着您可能拥有类似于以下 C 代码的代码。
c = 100;
while (--c) { /* do something while c is non-zero */ }
在 shell 中,退出状态 1 的计算结果为错误的当在条件上下文中使用时。
c=100
while let --c; do
# do something while c is non-zero
done
你看到这里的模式了吗?循环while
运行直到let
返回非零退出状态,当c
达到零时它会执行此操作。在这种情况下,非零退出状态并不意味着“错误”,它仅意味着let
到达结果0
。
不过,现在通常let
被替换为((...))
(算术评估),如
c=100
while ((--c)); do ...; done
值得重复的是,while
上面的循环并不关心c
.他们关心内置let
实用程序和((...))
.