使用gogo gosh脚本时,如何从所有命令中获取打印输出

时间:2014-06-23 13:48:58

标签: osgi pax gogo-shell

我尝试自动配置和搜索服务,以加快对OSGi系统更改的测试。我使用Maven Pax:Provision来设置各种存储库的环境。

我有一些命令可以从xml文件加载数据,然后使用一些命令来搜索服务。 搜索命令都返回描述结果的字符串。

我有一个provision.tsl文件,其中包含用于加载osgi环境的命令和一个运行搜索命令的search.tsl文件。 在search.tsl中,我有一个搜索命令列表,每个列表都有我加载的各种表格。 E.G。

echo Doing some searching
searchcell someTable someValue searchColumnName
echo search someOtherTable
searchcell someOtherTable someOtherValue searchColumnName
echo search yetAnotherTable
searchcell yetAnotherTable yetSomeOtherValue searchColumnName

但是,当我运行搜索命令E.G.

osgi> gosh search.tsl 

我只从文件中的最后一个命令得到结果。虽然看起来像Echo一样正常。

Doing some searching
search someOtherTable
search yetAnotherTAble
return results from searchCell yetAnotherTAble

这是天哪的预期行为吗?

1 个答案:

答案 0 :(得分:0)

gosh控制台会自动打印每个交互式命令的值。

这使得 searchcell 命令看起来正在打印结果,而实际上它正在返回一个 gogo 打印的字符串。

这在脚本中不起作用,因此您需要重新编码 searchcell 命令以打印到stdout,或者在脚本中明确打印每个结果:

echo Doing some searching echo (searchcell someTable someValue searchColumnName) echo search someOtherTable echo (searchcell someOtherTable someOtherValue searchColumnName)