[CentOS] Basic Bash Script Question

James Bensley

jwbensley at gmail.com
Mon Feb 21 10:31:38 UTC 2011


I'm stuck trying to work this one out and my Google skills are
apparently lacking today.

This is a test bash script;

#!/bin/bash

do something | tee a.log

if [ $? -ne 0]; then
 echo broken
fi

The problem with this script is $? contains the exit value of the tee
command, but I want to check the exit value of whatever command I put
in place of 'do something'.

How can I achieve this without loosing the tee operation, as 'do
something' maybe a long running command with a lot of output like
rsync?

I don't want to;
result=`do something`
if [ $? -ne 0...
....
fi
echo $result

As that won't output anything until the script has finished (the
reason for the tee is that this script will be a scheduled cron tab
but it may be run interactively sometimes also).

Thanks for reading :)

-- 
James.

http://www.jamesbensley.co.cc/
There are 10 kinds of people in the world; Those who understand
Vigesimal, and J others...?



More information about the CentOS mailing list