How to get both PIPESTATUS and output in bash script
Posted
by
Mustafa Serdar Sanli
on Super User
See other posts from Super User
or by Mustafa Serdar Sanli
Published on 2012-05-17T19:25:00Z
Indexed on
2012/06/06
10:44 UTC
Read the original article
Hit count: 346
I'm trying to get last modification date of a file with this command
TM_LOCAL=`ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'`
TM_LOCAL has value like "2012-05-16 23:18" after execution of this line
I'd also like to check PIPESTATUS to see if there was an error. For example if file does not exists, ls
returns 2. But $?
has value 0 as it has the return value of awk
.
If I run this command alone, I can check the return value of ls by looking at ${PIPESTATUS[0]}
ls -l --time-style=long-iso ~/.vimrc | awk '{ print $6" "$7 }'
But $PIPESTATUS
does not work as I've expected if I assign the output to a variable as in the first example. In this case, $PIPESTATUS
array has only 1 element which is same as $?
So, the question is, how can I get both $PIPESTATUS
and assign the output to a variable at the same time?
© Super User or respective owner