我正在尝试使用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
我尝试了很多不同的语法,但我无法理解。
答案 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年现在)