Parece que você está tentando acessar o histórico do outro terminal antes da sincronização. PROMPT_COMMAND
é executado imediatamente antes de um novo prompt ser impresso, ou seja, após você executa um comando e antes de digitar o próximo comando. Portanto, isso não acontecerá imediatamente em T1; você precisa fazer com que um novo prompt seja exibido.
Para testar isso, tente essa variante em suas etapas (adicionei um <enter>
extra em T1):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<enter>
<up> (i.e. I press the up arrow)
Com essa pressão extra de entrada, você recebe um novo prompt, que executa PROMPT_COMMAND
e sincroniza seu histórico, e, portanto, esperaria que essa seta para cima recuperasse o cd
em vez do ls
, como você queria . Infelizmente, não acho que haja uma maneira de fazer a sincronização acontecer instantaneamente em todos os terminais sem executar nenhum comando como você deseja; efetivamente isso exigiria que todas as suas sessões de login estivessem sincronizando suas listas de histórico continuamente o tempo todo, o que seria um enorme desperdício de CPU e taxa de transferência de disco.