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

2

Semelhante a isto: Retornar o último comando executado no shell-script .

 lastCommand=$(some command here)

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

P.S.

lastCommand significa o comando anterior dentro da função.

Solução Bash 4.2+ é suficiente.

    
por qeatzy 31.05.2018 / 11:56

1 resposta

2

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

configuração:

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

execute o que quer que seja

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. Note que isso não limpa ou limpa o arquivo a qualquer momento, ele crescerá indefinidamente.

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

    
por 31.05.2018 / 12:17