O comando history -a
é anexado apenas ao arquivo de histórico. Isso não afeta nenhuma sessão de shell, a menos que você também leia a partir dela. Então, o que você está procurando é:
PROMPT_COMMAND="history -a; history -r"
Como explicado em help history
:
-r read the history file and append the contents to the history
list
Dessa forma, você primeiro anexará o histórico do seu shell atual a $HISTFILE
e lerá dele, importando o histórico anexado de qualquer outra instância do shell para a atual.
Note que se você executar um comando em um terminal, ele não aparecerá no histórico de outro até que você execute um comando no segundo. O $PROMPT_COMMAND
é executado antes que um prompt seja mostrado, portanto, se o segundo terminal estiver aberto e parado ali, ele não lerá o novo comando executado no primeiro até você executar algo no segundo e um novo prompt aparecer .