From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6821 invoked by alias); 6 Mar 2012 11:35:43 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 16843 Received: (qmail 27066 invoked from network); 6 Mar 2012 11:35:40 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS autolearn=ham version=3.3.2 Received-SPF: none (ns1.primenet.com.au: domain at csr.com does not designate permitted sender hosts) Date: Tue, 6 Mar 2012 11:35:32 +0000 From: Peter Stephenson To: Subject: Re: [[ and [ Message-ID: <20120306113532.789859ca@pwslap01u.europe.root.pri> In-Reply-To: <4F55EF85.3050809@sergio.spb.ru> References: <4F52D510.6000002@sergio.spb.ru> <120303202448.ZM21278@torch.brasslantern.com> <4F555B0B.1050401@sergio.spb.ru> <120305220555.ZM27709@torch.brasslantern.com> <4F55EF85.3050809@sergio.spb.ru> Organization: Cambridge Silicon Radio X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.101.10.170] X-Scanned-By: MailControl 7.6.6 (www.mailcontrol.com) on 10.71.0.142 On Tue, 6 Mar 2012 15:05:41 +0400 sergio wrote: > On 03/06/2012 10:05 AM, Bart Schaefer wrote: > > What was the reason to implement [[ ]]? What advantages it gives? As > I see [[ ]] and [ ] provides same features. [[ ... ]] is specially parsed: this gives better error checking and an assurance that each argument means what you think it does. Consider: foo= [ $foo -eq "" ] With normal shell behaviour, this turns into the arguments "[", "-eq", "]", which confuses the test command. This is why you see all those "x"s and double quotes in configure scripts. However, [[ $foo -eq "" ]] does exactly what it looks like it does because "[[" is special to the shell and it looks at the raw arguments to parse the syntax. Generally, I get the impression Bourne shell syntax was something of a leap in the dark at the time; if you were designing it from scratch now, it would look considerably different in a lot of ways. -- Peter Stephenson Software Engineer Tel: +44 (0)1223 692070 Cambridge Silicon Radio Limited Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, UK Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog