From owner-freebsd-questions@FreeBSD.ORG Tue Jun 11 09:57:00 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 19DA9E8B; Tue, 11 Jun 2013 09:57:00 +0000 (UTC) (envelope-from me@janh.de) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.9]) by mx1.freebsd.org (Postfix) with ESMTP id A859C192F; Tue, 11 Jun 2013 09:56:59 +0000 (UTC) Received: from nb981.math (p57AEC8F2.dip0.t-ipconnect.de [87.174.200.242]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0Ll1ub-1UCBDw4BAD-00aepG; Tue, 11 Jun 2013 11:56:58 +0200 Message-ID: <51B6F459.5050306@janh.de> Date: Tue, 11 Jun 2013 11:56:41 +0200 From: Jan Henrik Sylvester User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130516 Thunderbird/17.0.6 MIME-Version: 1.0 To: Devin Teske Subject: Re: Bourne shell "if" syntax References: <51b620a6.42f.2b6a6400.5605dcf0@go2france.com> <121701ce660c$9a9aa5b0$cfcff110$@freebsd.org> <51B62389.5000500@tundraware.com> <121b01ce660e$2abae5f0$8030b1d0$@freebsd.org> In-Reply-To: <121b01ce660e$2abae5f0$8030b1d0$@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:+AHQkIXLHchzKql0DQW9ZhuiFQ5MWxMrL40JCGZN6Pj iLIwlzKcXxv7xD7XyqgKqWCeQBplviZsFB/RTzx8Wh+CmtF+gx 6buw62x4odKRS3s0kqUkZ6X+pitShaK7bu/H6BrermZ6a7ypsQ /8MDe0Ep1KghNxo0wle3dWD3TgfCmO2/2WMlugCzdE3tQAUV5A 0LICymyfEK/habpAsZA+8Qfr/MbGnbsHKtcibzgxgAx66RFg8r AspeChmhbs3eJW0cH+fW/Pk2ZdCebe1xBnVp9LyTxU0Xa83crm UgnGd41NGnGvW7gKNV70zXCh3LTpij99JhOHFlObZpmylav+A= = Cc: questions-list freebsd X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Jun 2013 09:57:00 -0000 On 06/10/2013 21:10, dteske@freebsd.org wrote: > Character sentinels are not required. > > FreeBSD's sh(1) knows (because "[" is a built-in) that when you quote a > parameter, that it is not (even if the value begins with "-") not an operator. What you are saying here is at least misleading. I just started up sh on 9.1 RELEASE and tried: $ A=-z $ if [ "$A" "" ] ; then echo z ; fi z $ if [ "$A" "1" ] ; then echo z ; fi $ if /bin/[ "$A" "" ] ; then echo z ; fi z $ if /bin/[ "$A" "1" ] ; then echo z ; fi $ Although "-z" is quoted, it is seen as an operator. It does not seem to have anything to do with whether the build-in or external "[" is used. Cheers, Jan Henrik