Modern versions of new awk (gawk, mawk, Bell Labs awk, any POSIX awk) all provide an array named ENVIRON. The array is indexed by environment variable name; the value is that variable's value. For instance, ENVIRON["HOME"] might be "/home/chris". To print out all the names and values, use a simple loop: {{{ awk for (i in ENVIRON) printf("ENVIRON['%s'] = '%s'\n", i, ENVIRON[i]) }}} What if my awk doesn't have ENVIRON[]? Short answer, get a better awk. There are many freely available versions. Longer answer, on Unix you can use a pipe from the `env' or `printenv' commands, but this is less pretty, and may be a problem if the values contain newlines: {{{ awk # test this on your system before you depend on it! while ( ("env" | getline line) >0 ) { varname=line varvalue=line sub(/=.*$/,"",varname) sub(/^[^=]*=/,"",varvalue) print "var [" varname "]='" varvalue "'" } }}}
Summary:
This change is a minor edit.
Username: