
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
lastCommand
significa comando anterioradentrola función.
La solución Bash 4.2+ es suficiente.
Respuesta1
Podrías usar xtrace
, es decir, set -x
para 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 $xtracefile
deberí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=""
.