4

我想使用这样的声明:

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

但是 bash 给出了这个语法错误信息:

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

我玩过各种形式,但我不知道如何让它接受一个带参数的函数。有任何想法吗?

4

2 回答 2

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

您需要使用与 bash 在其他地方所期望的相同的语法。至于有条件?iftrue : iffalse 语法,我认为你不能在 bash 中做到这一点。相反,您可以执行以下操作:

echo $(( 1 + $(true && echo 1 || echo 0) ))
2
于 2011-06-08T18:27:25.870 回答
2

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

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

于 2011-06-12T23:46:19.233 回答