Date: Tue, 4 Jun 1996 14:09:22 +0200 From: Wolfram Schneider <wosch@cs.tu-berlin.de> To: "Jin Guojun[ITG]" <jin@george.lbl.gov> Cc: bugs@freebsd.org, problem@bsdi.com Subject: test(1) (was sh bug) Message-ID: <199606041209.OAA00439@campa.panke.de> In-Reply-To: <199606031939.MAA26616@george.lbl.gov> References: <199606031939.MAA26616@george.lbl.gov>
index | next in thread | previous in thread | raw e-mail
Jin Guojun[ITG writes:
>The sh in BSD does not take "-" as the argument in if statement if the
>statement has more than one comparsions.
>The following line are generating errors:
>
>if [ "$1 = "-h" -o "$1" = "-help" ]; then
^
you forgot a quote, but this is not the problem
>ERROR:
>+ [ -h = -h -o -h = -help ]
>[: syntax error: Undefined error: 0
>
>
>but, it works in a single argument if statement:
>
>if [ "$1 = "-h" ]; then
> ...
>fi
>
>Would some one please fix it?
workaround:
if [ X"$1" = X"-h" -o "$1" = "-help" ]; then
^ ^
or use a case statement:
case "$1" in
-h|-help) echo usage;;
esac
Note: this is a test(1) bug, not a bug in sh(1). test (alias `[') is
*not* a sh builtin.
Wolfram
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606041209.OAA00439>
