我想使用这样的声明:
var=$(( func arg ? str1 : str2 ))
但是 bash 给出了这个语法错误信息:
syntax error in expression (error token is "arg")
我玩过各种形式,但我不知道如何让它接受一个带参数的函数。有任何想法吗?
我想使用这样的声明:
var=$(( func arg ? str1 : str2 ))
但是 bash 给出了这个语法错误信息:
syntax error in expression (error token is "arg")
我玩过各种形式,但我不知道如何让它接受一个带参数的函数。有任何想法吗?
echo $(( $(seq 1) + 1 ))
2
您需要使用与 bash 在其他地方所期望的相同的语法。至于有条件?iftrue : iffalse 语法,我认为你不能在 bash 中做到这一点。相反,您可以执行以下操作:
echo $(( 1 + $(true && echo 1 || echo 0) ))
2
我认为正确的答案是没有办法使用我询问的语句。问题是这个条件运算符只能计算为整数而不是我想要的字符串。
jm666 在对史蒂夫的回答的评论中回答了这个问题,所以我给了他一票。