Is $PROMPT_COMMAND a colon separated list?
Isso é fácil de testar:
$ PROMPT_COMMAND='true:true' bash
bash: true:true: command not found
$ exit
Então, a resposta é "não".
Mas você poderia tomar isso como uma sequência separada de ponto-e-vírgula de comandos, como qualquer outra linha de código shell:
$ PROMPT_COMMAND='echo x;echo y' bash
x
y
$ exit
Isso é o que a atribuição da sua pergunta tem: vários comandos, separados por ponto e vírgula, com o valor anterior de PROMPT_COMMAND
colado ao fim.
É claro que outra maneira de executar vários comandos a partir de PROMPT_COMMAND
seria fazer uma função e chamá-la de lá.
Dito isto, a sequência printf
no seu PROMPT_COMMAND
parece algo que pode ser melhor colocado no prompt real, por dois motivos. Primeiro, ele não termina em uma nova linha, então pode atrapalhar a idéia de Bash de onde o cursor está, assim como outros comandos que geram linhas incompletas antes de sair. Segundo, se você tiver o shell reimprimir o prompt, por meio da conclusão da tabulação, PS1
será exibido novamente, mas PROMPT_COMMAND
não será executado novamente.