Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Apr 2003 11:52:49 +0200 (CEST)
From:      Konrad Heuer <kheuer2@gwdg.de>
To:        Gunnar Flygt <gunnar.flygt@sr.se>
Cc:        FreeBSD Questions <freebsd-questions@FreeBSD.org>
Subject:   Re: problems with sh after upgrade to 4.7
Message-ID:  <20030430114216.L89463-100000@gwdu60.gwdg.de>
In-Reply-To: <20030430093709.GA55280@sr.se>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 30 Apr 2003, Gunnar Flygt wrote:

> After upgrade from 4.6.2-RELEASE to 4.7-RELEASE I've got problems
> with a shellscript that I have on one of my machines. The script
> (which I've taken over from a far better shellprogammer) looks as follows:
>
> #!/bin/sh
> [...snip...]
>
> The problem line is line 12:
>  [ -x ${RTSPPROXY} ] && ${RTSPPROXY} > /dev/null & && echo $! > $ {PID_FILE}
>
> When I run `/usr/local/etc/rc.d/rtspproxy.sh start I get this error
>
> /usr/local/etc/rc.d/rtspproxy.sh: 12: Syntax error: "&&" unexpected
>
> The script starts the file and redirects the output from rtspproxy
> (the PID) to the PID_FILE so that the check part can use it later.
>
> Since my knowledge in shellscripting is not enough to rewrite the script,
> I ask for help here.

It's no longer legal to combine & and && since the return code of a
background process cannot be verified by the shell in order to decide
whether commands after && should be executed.

I'd suggest to replace the critical line by:

  [ -x ${RTSPPROXY} ] && ${RTSPPROXY} > /dev/null &
  if [ -n "$!" ]; then echo $! > ${PID_FILE}; else rm -f ${PID_FILE}; fi

Regards

Konrad Heuer (kheuer2@gwdg.de)  ____            ___  _______
GWDG                           / __/______ ___ / _ )/ __/ _ \
Am Fassberg                   / _// __/ -_) -_) _  |\ \/ // /
37077 Goettingen             /_/ /_/  \__/\__/____/___/____/
Germany





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030430114216.L89463-100000>