我想使用这样的声明:
var=$(( func arg ? str1 : str2 ))
但是bash提供了这种语法错误消息:
syntax error in expression (error token is "arg")
我玩过各种形式,但我无法弄清楚如何让它接受带参数的函数。有什么想法吗?
答案 0 :(得分:2)
echo $(( $(seq 1) + 1 ))
2
您需要使用与其他地方的bash相同的语法。至于条件? iftrue:iffalse语法,我认为你不能在bash中做到这一点。相反,你可以做类似的事情:
echo $(( 1 + $(true && echo 1 || echo 0) ))
2
答案 1 :(得分:1)
我认为正确答案是没有办法使用我所说的陈述。问题是这个条件运算符只能计算整数而不是我想要的字符串。
jm666在对史蒂夫回答的评论中回答了这个问题,所以我给了他一个投票权。