From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5379 invoked by alias); 10 Apr 2015 01:39:48 -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: 20120 Received: (qmail 4920 invoked from network); 10 Apr 2015 01:39:47 -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 X-Injected-Via-Gmane: http://gmane.org/ To: zsh-users@zsh.org From: Thorsten Kampe Subject: Re: `[[ -n $VAR ]]` equal to `[[ $VAR ]]`? Date: Fri, 10 Apr 2015 03:39:39 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: p5de5aada.dip0.t-ipconnect.de User-Agent: MicroPlanet-Gravity/3.0.4 * Kurtis Rader (Thu, 9 Apr 2015 18:31:04 -0700) > When I run the following > > [[ $VAR ]] && print yes > > I get a parse error. Which is what I expected given the documentation in > section "Conditional Expressions" of "man zshall". Are you seeing different > behavior? What makes you think a bare variable is a valid expression? ``` VAR= if [[ $VAR ]] then printf "something\n" else printf "nothing\n" fi ``` Works fine in zsh and bash. Same goes for `[[ $VAR ]] && printf "something\n" || printf "nothing\n"`