При использовании сценариев Gogo Gosh, как получить распечатки со всех команд
Я пытаюсь автоматизировать предоставление и поиск службы, чтобы ускорить тестирование изменений в системе OSGi. Я использую Maven Pax:Provision для настройки среды из различных репозиториев.
У меня есть несколько команд для загрузки данных из XML-файлов, а затем несколько команд для поиска служб. Все команды поиска возвращают строку, описывающую результаты.
У меня есть файл provision.tsl с командами для загрузки среды osgi и файл search.tsl, который запускает команды поиска. В search.tsl у меня есть список команды поиска, каждая для различных таблиц, которые я загрузил. НАПРИМЕР
echo Doing some searching
searchcell someTable someValue searchColumnName
echo search someOtherTable
searchcell someOtherTable someOtherValue searchColumnName
echo search yetAnotherTable
searchcell yetAnotherTable yetSomeOtherValue searchColumnName
Тем не менее, когда я запускаю команду поиска EG
osgi> gosh search.tsl
Я получаю результат только из последней команды в файле. Эхо работает как обычно, хотя и выглядит так.
Doing some searching
search someOtherTable
search yetAnotherTAble
return results from searchCell yetAnotherTAble
Это ожидаемое поведение, черт возьми?
1 ответ
Консоль Gosh автоматически печатает значение каждой интерактивной команды.
Это создает впечатление, что ваша команда searchcell печатает результат, когда фактически возвращает строку, которую печатает gogo.
Это не работает в скриптах, поэтому вам нужно либо перекодировать команду searchcell для печати в stdout, либо явно распечатать каждый результат в вашем скрипте:
echo Doing some searching
echo (searchcell someTable someValue searchColumnName)
echo search someOtherTable
echo (searchcell someOtherTable someOtherValue searchColumnName)