可以在$((func arg?str1:str2))中使用函数吗?

时间:2011-06-08 17:59:35

标签: bash function arithmetic-expressions

我想使用这样的声明:

var=$(( func arg ? str1 : str2 ))

但是bash提供了这种语法错误消息:

syntax error in expression (error token is "arg")

我玩过各种形式,但我无法弄清楚如何让它接受带参数的函数。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

echo $(( $(seq 1) + 1 ))
2

您需要使用与其他地方的bash相同的语法。至于条件? iftrue:iffalse语法,我认为你不能在bash中做到这一点。相反,你可以做类似的事情:

echo $(( 1 + $(true && echo 1 || echo 0) ))
2

答案 1 :(得分:1)

我认为正确答案是没有办法使用我所说的陈述。问题是这个条件运算符只能计算整数而不是我想要的字符串。

jm666在对史蒂夫回答的评论中回答了这个问题,所以我给了他一个投票权。