2012-06-14 33 views
1

我试图使用apache karaf命令行(它使用jline库)有条件地执行命令。如何使用条件运算符shell:如果在karaf/jline

我在外壳上找不到任何文档: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 

我已经尝试了一堆不同的语法,但我无法弄清楚。

+0

你试图逃过括号吗? –

回答

3

条件语法是这样的:

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

此命令使用封闭的每个部分。例如,这可以让你把一个if放在每个里面。

0

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

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

工程就像一个魅力,但我必须同意的文件是缺乏这方面的。 (它现在的2014年)