printenv
не является встроенным ksh и может присутствовать не всегда. Для более старых версий ksh до ksh93 метод eval 'expression' работает лучше всего.
Мощный метод в ksh93 - это использование косвенных переменных.
с помощью 'nameref' или 'typeset -n'.
Определите и проверьте nameref переменную, которая ссылается на $PATH
:
$ nameref indirect=PATH
$ print $indirect
/usr/bin:/usr/sbin
Посмотрите, как меняется переменная nameref при изменении PATH
:
$ PATH=/usr/bin:/usr/sbin:/usr/local/bin
$ print $indirect
/usr/bin:/usr/sbin:/usr/local/bin
Показать версию ksh и псевдоним для nameref
:
$ type nameref
nameref is an alias for 'typeset -n'
$ echo ${.sh.version}
Version JM 93t+ 2010-02-02