Envio um comando printenv na linha de comando e vejo que uma das variáveis é a seguinte:
_=/usr/bin/printenv
Agora eu faço isso:
mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv
mas ao tentar chamar echo nesta variável recebo o seguinte:
mo@mo-Toshiba ~/Workspace $ echo $_
_
O que da? Por que echo não trata isso como uma variável? (ou seja, como $PATH ou $PWD)
Responder1
É uma variável. Ovariável de shell_
é atualizado pelo shell cada vez que você executa um comando para conter o último argumento do comando anterior.
Não é útil com muita frequência, mas permite escrever um alias ou função para executar algo “no mesmo arquivo (ou outro objeto) do último comando”.
A variável também é adicionada ao ambiente de subprocessos. Lá, ele contém o nome do comando passado no shell (antes PATH
da pesquisa).