
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
lastCommand
significa comando anteriordentroa função.
A solução Bash 4.2+ é suficiente.
Responder1
Você poderia usar xtrace
, ou seja, set -x
para 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 $xtracefile
deve 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=""
.