1

jlineライブラリを使用するapachekarafコマンドラインを使用して条件付きでコマンドを実行しようとしています。

shell:ifコマンドにドキュメントが見つかりません。

たとえば、Linuxシェルではこれは機能します。

if [ "foo" = "foo" ]; then echo "good"; fi

karafの構文を次のように変更すると:

if [ "foo" = "foo" ] echo "good"

エラーが発生します:

Error executing command shell:if: unable to convert argument condition with value '{foo=foo}' to type org.apache.felix.service.command.Function

さまざまな構文を試しましたが、理解できません。

4

2 に答える 2

3

条件構文は次のように機能します。

>if {true} {echo yes} {echo no}
yes
> if {false} {echo yes} {echo no}
no

このコマンドは、各パーツにクロージャーを使用します。これにより、たとえば、if を each の中に入れることができます。

于 2012-10-18T15:25:17.370 に答える
0

次のように文字列比較の問題を解決しました。

if { $ENVIRONMENT equals "local" } {
    echo "*** Altering configuration for local deployment using mocks ***"
} {
    echo "*** Skipping ***"
}

魅力のように機能しますが、この分野のドキュメントが不足していることに同意する必要があります。(現在2014年)

于 2014-12-17T14:43:52.960 に答える