使用条件运算符时的数字测试

时间:2010-06-03 05:19:13

标签: bash

在bash中,为什么这不起作用:

$ echo $((1 -gt 2 ? 3 : 4))
bash: 1 -gt 2 ? 3 : 4: syntax error in expression (error token is "2 ? 3 : 4")

这两个都没有:

$ echo $(((1 -gt 2) ? 3 : 4))
bash: (1 -gt 2) ? 3 : 4: missing `)' (error token is "2) ? 3 : 4")

1 个答案:

答案 0 :(得分:2)

使用:

if [ 1 -gt 2 ]; then
  echo 3
else 
  echo 4
fi

或者:

echo $((2 > 1 ? 1 : 0))

{ - 3}}使用-gt系列,而$(())中允许的运算符描述为test commandhere。你不能混合搭配。

从标准中注意到“只需要签名的长整数运算”。你需要使用bc。