Я отправляю команду printenv в командной строке и вижу, что одна из переменных выглядит следующим образом:
_=/usr/bin/printenv
Теперь я делаю так:
mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv
но при попытке вызвать echo для этой переменной я получаю следующее:
mo@mo-Toshiba ~/Workspace $ echo $_
_
Что дает? Почему echo не обрабатывает это как переменную? (например, как $PATH или $PWD)
решение1
Это переменная.переменная оболочки_
обновляется оболочкой каждый раз, когда вы запускаете команду, чтобы содержать последний аргумент предыдущей команды.
Это нечасто бывает полезно, но позволяет вам написать псевдоним или функцию для выполнения чего-либо в «том же файле (или другом объекте), что и последняя команда».
Переменная также добавляется в среду подпроцессов. Там она содержит имя команды, переданное в оболочке (до PATH
поиска).