Retorna o último comando executado na função bash

Retorna o último comando executado na função bash

Semelhante a isto:Retorna o último comando executado em shell-script.

 lastCommand=$(some command here)

É possível obter o mesmo resultado, mas usado dentro de uma função bash, não de um script bash?

PS

lastCommandsignifica comando anteriordentroa função.

A solução Bash 4.2+ é suficiente.

Responder1

Você poderia usar xtrace, ou seja, set -xpara obter um histórico de todos os comandos que o shell executa:

configurar:

xtracefile=$(mktemp)
exec 9>"$xtracefile"
BASH_XTRACEFD=9
set -x

então execute o que for

foo() { echo foo; echo bar; }
foo

Agora $xtracefiledeve conter as linhas

+ echo foo
+ echo bar

e você pode trabalhar com isso para escolher o que quiser. Observe que isso não limpa ou limpa o arquivo em nenhum momento, ele crescerá indefinidamente.

Se você quiser se livrar dos +sinais, atribua PS4="".

informação relacionada