Это невозможно (в запущенной оболочке).
Для печати значения переменной окружения вам нужна команда, либо используйте printenv
:
$ printenv "LANG"
LANG=en_US.UTF-8
Которая сообщит значение переменной как экспортированное в окружение команды. Или вы используете echo (или printf, или print) значение переменной в текущей запущенной оболочке:
$ echo "$LANG"
LANG=en_US.UTF-8
В обоих случаях была выполнена команда, и значение переменной $_
будет установлено в последний аргумент выполненной команды (если была выполнена какая-либо команда).
$ ls
$ echo ".$_."
.--color=auto.
$ echo ".$_."
..--color=auto..
$ echo ".$_."
...--color=auto...
$ bash -c 'echo $_'
/bin/bash
$ bash -c 'ls -l >>/dev/null; echo $_'
-l
Поэтому: любая выполненная команда установит $_
для дочерней оболочки, в которой команда была выполнена, и будет напечатана как значение $_
той же оболочкой.
Некоторые оболочки не используют или устанавливают временный $_
:
$ dash -c 'ls -l >/dev/null; echo ".$_."'
./bin/dash.
Но это только раскроет значение пути к dash
.
..