On Sun, 2012-01-01 at 16:40 +0100, Clément de l'Hamaide wrote: > Hi Pete, Geoff, > > Now my script work perfectly. >
Hi Clément, Glad to hear it is all now working fine... Sorry my explanation was not clear... 1. I assume, like Francesco's script, and mine, you have the command in the early part of the script, like - set -e This command asks the script to EXIT, stop, when the last process returns other than 0 as a return value... Without this the default action of a script is to continue even when the last process gives an error exit... non zero... So if you do not do this set -e, or do not want this, then forget this... 2. Also as I understand it, the script can ONLY react to the LAST process in a chain of commands... So if you have a chain of commands like cmake ... 2>$1 | tee -a $LOGFILE then the LAST command in this process is the 'tee' So even if there is a cmake error exit, then the script will continue, since the last action, the tee, does not return an error... Is that clearer? 3. Now the situation is DIFFERENT with a simple redirection like - cmake .... 2>&1 >>$LOGFILE or make ... 2>&1 >>$LOGFILE In this case the script will STOP on an error, since redirection is established BEFORE starting cmake or make, command, so in this case the LAST command is the cmake or make error... But in doing this, as you point out, there is NO OUTPUT to the console... Except as Jari pointed out, you can start the script as a background process, and use a repeated tail command to view the end of the LOG in a console... Or even start the script in a terminal, and open another terminal to do the tail command, repeatedly... This is what I tend to do, since I too redirect the SVN or git actions to a log file, and use tail in another terminal to 'see' what is happening... especially when it seems to be taking too long ;=() BUT yes, I too LOVE the fact that 2>&1 | tee -a $LOGFILE sends ALL cmake or make output to BOTH the LOG file for later review, AND to the console... So it is a compromise ;=(( You can either have ALL output put to the LOG file, AND to the console, BUT then the script will NOT stop on an ERROR... Or you can remove this and the script will STOP on an error... but there is LESS information to the console if you use a redirection to a log... So you must choose what ever you think best... That is all... and I attach a simple example below... Re: Building terragear-cs with "-DNO_OPENSCENEGRAPH_INTERFACE=1" I am not sure if this is the SAME as -D SIMGEAR_HEADLESS=ON but I am sure they are, in some ways at least, very 'similar'... Maybe others who know more about this can comment further, to clarify... I have only ever used "-DNO_OPENSCENEGRAPH_INTERFACE=1"... which I know works fine to keep OSG dependency out of the terragear-cs tools... Regards, Geoff. Example: testexit1 #!/bin/sh BN=`basename $0` LOGFILE="/tmp/templog.txt" echo "$BN: Testing error exit conditions..." | tee -a $LOGFILE make -f nofileexists echo "$BN: 1: Last exit was $?, but the script is continuing..." # set it to stop on error set -e make -f nofileexists 2>&1 | tee -a $LOGFILE echo "$BN: 2: Now last exit is zero $?, so the script is continuing..." make -f nofileexists 2>&1 >> $LOGFILE echo "$BN: 3: Since the redirection is set up BEFORE" echo "$BN: running make then this output will NOT be seen as the " echo "$BN: script will have exited due to the 'make' error." PS: And remember to try the very LATEST terragear-cs tools in development you need to clone and switch to the 'newconstruct' branch... ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Flightgear-devel mailing list Flightgear-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/flightgear-devel