redirect command output into variable and standard output in ksh

Attila Zobolyak picture Attila Zobolyak · Oct 26, 2011 · Viewed 73.5k times · Source

I have some shell command. I would like to write the output to the standard output and save it into variable as well. I'd like to solve it with one command. I have tried these things.

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

Any idea?

Answer

Gary Barker picture Gary Barker · Oct 26, 2011

How about:

VAR=$(ls | tee /dev/tty)