这是我在 Linux 上的第一个“if-else”脚本。它给出了错误
[: 争论太多
代码:
n=0
if [ $n % 2 -eq 0 ]
then
echo "even number"
fi
如何纠正。
答案1
中的数学运算bash
必须在 中执行arithmetic context
。在当前的实现中,您将“$n”、“%”和“2”作为参数提供给[
,这不执行数学运算。这是一个执行数学运算上下文的示例:
if [ "$((n % 2))" -eq 0 ]
在上面的示例中,结果$(())
在命令看到之前由 shell 展开[
。您可以通过删除对以下内容的调用来简化此操作[
:
if (( (n % 2) == 0 ))