Я пытаюсь захватить вывод из канала и сохранить его в переменной. Использование подоболочки, то есть var = $ (computeOutput), НЕ БУДЕТ РАБОТАТЬ, потому что сама функция computeOutput устанавливает другие переменные, которые должны храниться в той же области видимости, что и выходные данные. Если я использую подоболочку, другие переменные будут установлены в локальной копии подоболочки, но не в родительской оболочке.
Я подумал о следующем решении:
Учитывая функцию ...
function storeOutput () {
вар = $ (кошка)
}
... когда я делаю следующее ...
эхо "привет" | storeOutput; echo $ var
... "hello", значение var, выводится на консоль
Однако, когда я использую эту функцию внутри скрипта, вместо того, чтобы получить правильный результат, я получаю список содержимого текущего каталога. К сведению, я использую Mac OSX с установленными портами Mac.
Может кто-нибудь объяснить, почему это происходит ??? ИЛИ ЛУЧШЕ ЕЩЕ ПРЕДЛАГАЕТ ДРУГОЕ РЕШЕНИЕ