curto: o recurso se aplica somente a edição caracteres; discard não é um caractere de edição.
por mais tempo: use a fonte. Há uma tabela em lib/readline/bind.c que tem esta entrada:
{ "bind-tty-special-chars", &_rl_bind_stty_chars, 0 },
que atribui o nome da opção ao endereço de uma variável. A variável é testada em alguns lugares da libreadline, indo em última instância para essa função:
/* Rebind all of the tty special chars that readline worries about back
to self-insert. Call this before saving the current terminal special
chars with save_tty_chars(). This only works on POSIX termios or termio
systems. */
void
rl_tty_unset_default_bindings (kmap)
Keymap kmap;
{
/* Don't bother before we've saved the tty special chars at least once. */
if (RL_ISSTATE(RL_STATE_TTYCSAVED) == 0)
return;
RESET_SPECIAL (_rl_tty_chars.t_erase);
RESET_SPECIAL (_rl_tty_chars.t_kill);
# if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER)
RESET_SPECIAL (_rl_tty_chars.t_lnext);
# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
RESET_SPECIAL (_rl_tty_chars.t_werase);
# endif /* VWERASE && TERMIOS_TTY_DRIVER */
}
Você pode ver os nomes stty usados nas estruturas: erase , kill e lnext . Não há discard . bash não define (ou redefine).