2

我正在使用 ServiceMix,我试图列出一些捆绑包并仅检索那里的捆绑包 ID。我正在尝试执行以下操作:

osgi:列表 | grep -i | awk xxx

我尝试使用 awk,但 ServiceMix 中没有提供。我也尝试使用 shell:exec 像这样:

osgi:列表 | grep -i | 外壳:执行awk 'xxx'

但这也不起作用,也许我的方法完全错误。有没有其他人有一些经验如何实现我只检索捆绑包的 ID 的目标?

4

2 回答 2

6

您可以随时使用 Karaf 的 shell 语言(从 karaf 2.3.1 开始工作)

bundles = $.context bundles ;
echo "Printing bundle information" ;
each ($bundles) {
    symbolicName = $it symbolicName ;
    bundleId = (($it bundleid) toString) ;
    echo "Symbolic name : " $symbolicName " Bundle Id : " $bundleId ;
}

运行时,这将输出类似于:

Symbolic name :  org.apache.felix.framework  Bundle Id :  0
Symbolic name :  org.ops4j.pax.url.mvn  Bundle Id :  1
Symbolic name :  org.ops4j.pax.url.wrap  Bundle Id :  2
Symbolic name :  org.ops4j.pax.logging.pax-logging-service  Bundle Id :  3
于 2013-05-23T20:49:36.440 回答
0

我认为没有 sed/awk 命令。并且 list 命令不能只显示 bundle id。

您可以记录 JIRA 票证以进行增强。也许对于列表命令的选项来选择仅列出的内容(捆绑 ID、捆绑版本、状态等) http://karaf.apache.org/index/community/support.html

于 2013-05-12T07:04:35.433 回答