我如何使用条件运算符shell:如果在karaf / jline中

时间:2012-06-14 13:12:51

标签: apache-karaf jline

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

我在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

我尝试了很多不同的语法,但我无法理解。

2 个答案:

答案 0 :(得分:3)

条件语法的工作原理如下:

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

此命令使用每个部分的闭包。例如,这允许你在每个内部放置一个if。

答案 1 :(得分:0)

我已经解决了我的字符串比较问题:

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

像魅力一样,但我必须同意这个领域缺乏文档。 (2014年现在)

相关问题