У меня есть некоторая команда оболочки. Я хочу записать вывод в стандартный вывод и сохранить его в переменную. Я хотел бы решить эту проблему одной командой. Я пробовал эти вещи.
ls > $VAR # redirects the output to file which name is stored in $VAR
ls | tee -a $VAR # writes to standard output as well as in file which name is stored in $VAR
VAR=`ls` # output into $VAR, but it is not sent to standard output
VAR=`ls`;echo $VAR # ok, it works but these are two commands
Есть идеи?
отличный ответ от @Gary_Barker, но это возможно не во всех системах.
В нашей команде нет консоли. И есть еще одна маленькая проблема.
Если я использую
VAR=$(ls -1); echo $VAR
, это не то же самое, что ls -1
Мое решение работает, если не имеет значения, что вывод происходит из канала ошибок.
VAR=$(ls -1 | tee >&2)