Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: `[[ -n $VAR ]]` equal to `[[ $VAR ]]`?



Okay, I had forgotten that a bare string is equivalent to "-n string" in
bash. The zsh documentation makes no mention of this "feature". It probably
works for you and not me because of an option that differs between our two
environments. Although for the life of me I can't figure out what that
option is.

On Thu, Apr 9, 2015 at 6:39 PM, Thorsten Kampe <thorsten@xxxxxxxxxxxxxxxx>
wrote:

> * 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"`
>
>


-- 
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank


Messages sorted by: Reverse Date, Date, Thread, Author