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 が Steve の回答へのコメントで質問に回答したので、私は彼に賛成票を投じました。

于 2011-06-12T23:46:19.233 に答える