在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")
答案 0 :(得分:2)
使用:
if [ 1 -gt 2 ]; then
echo 3
else
echo 4
fi
或者:
echo $((2 > 1 ? 1 : 0))
{ - 3}}使用-gt系列,而$(())中允许的运算符描述为test command和here。你不能混合搭配。
从标准中注意到“只需要签名的长整数运算”。你需要使用bc。