De man bash
:
PS1 The value of this parameter is expanded (see PROMPTING below) and used as the primary prompt string. The default value is ''\s-\v\$ ''.
PS2 The value of this parameter is expanded as with PS1 and used as the secondary prompt string. The default is ''> ''.
PS3 The value of this parameter is used as the prompt for the select command (see SHELL GRAMMAR above).
PS4 The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The
Assim, por qualquer razão, a não expansão de PS3
é um comportamento documentado.
Quanto a PS4
, você precisa exportar a variável para disponibilizá-la em uma nova invocação de bash
. E você precisa definir a opção de rastreamento explicitamente, -v
não a ativa:
pse@Mithos:~/.tmp$ export PS4='uuuu: '
pse@Mithos:~/.tmp$ bash -c "set -x; echo foo"
uuuu: echo foo
foo