1

我正在尝试使用使用 jline 库的 apache karaf 命令行有条件地执行命令。

我在 shell:if 命令上找不到任何文档。

例如,在 linux shell 中这是有效的:

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 回答