У меня есть сценарий оболочки, который имеет функцию для записи операторов. SomeProgram
- это другая программа, которая запускается из моего сценария оболочки, и журналы из нее передаются в функцию LogToFile
.
#!/bin/sh
LogToFile() {
[[ ! -t 0 ]] && while read line; do echo "$line" >> $MY_LOG_FILE; done
for arg; do echo "$arg" >> $MY_LOG_FILE; done
}
SomeProgram | LogToFile
Вопрос:
Все хорошо, пока здесь. Но я пытался получить код возврата из SomeProgram
и сохранить его в переменной. Как я могу сделать это, не теряя функциональность журналов с SomeProgram
, идущих в мою функцию LogToFile
. Я попробовал следующие варианты, но тщетно.
RETVAL=SomeProgram | LogToFile
RETVAL=(SomeProgram) | LogToFile
RETVAL=(SomeProgram | LogToFile)
Можно ли передать выходные данные программы в параметр функции и одновременно получить возвращаемое значение в другой переменной?