Esto es lo que dice la documentación de 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 first character of PS4 is replicated mul‐
tiple times, as necessary, to indicate multiple levels of indi‐
rection. The default is ``+ ''.
Entonces, PS1
es su aviso normal de "esperando un comando", PS2
es el aviso de continuación que vio después de escribir un comando incompleto,
PS3
se muestra cuando el select
comando está esperando la entrada y
PS4
es el prefijo de la línea de rastreo de depuración.
La documentación que cité no lo dice, pero el valor predeterminado para
PS3
en bash es #?
:
$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C