Como mencionado, $!
conterá o código de saída do último comando quando PROMPT_COMMAND
for executado. Matei David teve uma boa sugestão para executar set
do PROMPT_COMMAND
, o que revela que não há nada (no meu sistema) sendo adicionado ao ambiente:
$ PROMPT_COMMAND="set > /tmp/prompt.log"
$ set > /tmp/basic.log
$ diff -u0 /tmp/basic.log /tmp/prompt.log
# no results
É claro que isso é anedótico e não inclui nenhuma variável mágica Bash ou outro estado não incluído por set
, mas é um começo.
Você pode obter o último comando com:
last_command=$(HISTTIMEFORMAT='' history 1 | sed 's/ *[0-9]* *//')