On 09/07/2010 02:09 PM, Bruno Haible wrote:
   $ env | grep POSIXLY_CORRECT
   POSIXLY_CORRECT=1
   $ echo ${POSIXLY_CORRECT+set}

Any other ideas for portable ways of detecting whether a shell variable
is currently local-only or exported?

'printenv' does not exist on Solaris.

But 'awk' is among the list of portable programs. This should work:

   if test `awk 'BEGIN { print ENVIRON["POSIXLY_CORRECT"] }'<  /dev/null | wc 
-c` = 1; then
     : # POSIXLY_CORRECT is not exported
   else
     : # POSIXLY_CORRECT is exported
   fi

Thanks for the tip! With that, I can come up with a more concise awk script, given that hint, and awk is already on the GCS approved list. (Still, it would be nice to add env.) POSIX guarantees that awk supplies ENVIRON; are we assuming that this is reasonable portable to all the old-and-crusty vendor implementations out there, since the autoconf manual doesn't state otherwise?

--
Eric Blake   ebl...@redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Reply via email to