Re: [PATCH] Fixed non portable use of expr and removed incorrect use of test -eq for string comparison
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 23, 2007, 09:25 UTC
- Message-ID
- <7vveb6txfc.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <20070823090600.GB6573@informatik.uni-freiburg.de>
Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> writes:
Show 18 quoted lines
> Junio C Hamano wrote: >> By the way, I do not know if the use of "which" there is >> portable. Have Solaris folks tried this program ever? > I don't count myself to "Solaris folks", even though I still use it to > read and write my email. But anyhow I know some of the pitfalls... > > login@~ > /bin/bash --version > GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10) > Copyright (C) 2004 Free Software Foundation, Inc. > > login@~ > /bin/bash > > zeisberg@login ~$ which httpd && echo successful > no httpd in /home/zeisberg/bin /home/zeisberg/usr/bin /opt/bin > /usr/local/graphics/bin /usr/local/gnu/bin /usr/local/bin > /usr/local/X11R6/bin /usr/xpg4/bin /usr/bin /usr/ccs/bin /usr/sbin > /usr/ucb /usr/openwin/bin > successful
Thanks. Somebody else tried:
found=`which "$command"`
if test -n "$found"
then
... use $found as the full path to the command
fiand got burned because "no httpd in ..." comes to the stdout! I did not exactly recall if there was an issue with the exit status, but your demonstration shows that the status is also useless.
We _could_ do something ugly and pointless like:
test -f `which "$command"`
but I'd say I prefer the alternative I sent out at that point.