Devuelve el último comando ejecutado en la función bash

Devuelve el último comando ejecutado en la función bash

Similar a ésto:Devuelve el último comando ejecutado en shell-script.

 lastCommand=$(some command here)

¿Es posible lograr el mismo resultado, pero usarlo dentro de una función bash, no en un script bash?

PD

lastCommandsignifica comando anterioradentrola función.

La solución Bash 4.2+ es suficiente.

Respuesta1

Podrías usar xtrace, es decir, set -xpara obtener un historial de todos los comandos que ejecuta el shell:

configuración:

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

luego ejecuta lo que sea

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

Ahora $xtracefiledebería contener las líneas.

+ echo foo
+ echo bar

y puedes trabajar con eso para elegir lo que quieras. Tenga en cuenta que esto no borra ni limpia el archivo en ningún momento, crecerá indefinidamente.

Si desea deshacerse de los +signos, asigne PS4="".

información relacionada