sean finney on 13 Oct 2009 15:22:45 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Distinguishing between environment variable with null value and one that is not set


On Tue, Oct 13, 2009 at 05:19:26PM -0400, Paul L. Snyder wrote:
> How about this, which should be POSIX-compliant (and doesn't require a
> subshell):
> 
>   % foo=bar
>   % if [[ -z ${foo+isset} ]]; then echo nope; else echo yep; fi
>   yep
>   % foo=''
>   % if [[ -z ${foo+isset} ]]; then echo nope; else echo yep; fi
>   yep
>   % unset foo
>   % if [[ -z ${foo+isset} ]]; then echo nope; else echo yep; fi
>   nope
> 
> 'isset' doesn't matter, it could be any non-zero-length string.

i hate to tell ya, but i'm pretty sure "[[" is also non-posix :)

if in doubt, install ksh, dash, and posh.  they are forgiving in
approximately descending order :)


	sean

Attachment: signature.asc
Description: Digital signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug