Thanks for the many helpful replies! I decided to use set the option "set +e" before executing the script for the environment variables and to unset it afterward. It works perfectly!
Natalie ----- Ursprüngliche Nachricht ----- Von: jenkins wilde Gesendet: 15.08.12 10:53 Uhr An: jenkinsci-users@googlegroups.com Betreff: Re: Return value of a command in shell script != 0 stops build Or you can turn off error checking for a specific command by doing: set +e command set -e Andy. On 14 August 2012 17:45, Sami Tikka < sjti...@gmail.com > wrote: If you begin the build step with a line that starts with #!, Jenkins will assume you want to specify the interpreter instead of using /bin/sh -xe, which is the default. It is the -e switch of the shell which is responsible for aborting the script when a command exits with error. You could place "#!/bin/sh -x" on the first line (without the quotes). But remember to watch for errors yourself, then. -- Sami natalie_pub...@gmx.net kirjoitti 14.8.2012 kello 18.49: > Hi there, > > I'm using Jenkins to build a C++ project on Solaris 10. > > To set up the environment I'm calling various shell scripts, of which one > contains the following code: > -- > for P in /usr/contrib/bin /usr/local/bin > do > cd $P > /dev/null 2>&1 > if [ $? -eq 0 ] > then > // XYZ > echo $P > fi > done > -- > > The directory "/usr/contrib/bin" does not exist. This makes the return value > in line 3 (cd $P > /dev/null 2>&1) negative and Jenkins stops the build > because it appears to be "failed". > > In the job configuration, section "Build shell" it already says that the > build is considered failed if one of the commands returns <> 0. > > This script has been used for compilation by many other projects for long > time, so I don't really want to change it. > > Is there any workaround or solution to this behaviour (except to create this > directory)? > > Regards, > Natalie