Библиотека readline принимает \001 и \002 (ASCII SOH и STX) в качестве разделителей текста, которые нельзя распечатать. Они также работают в любом приложении, которое использует readline.
Из lib/readline/display.c:243 в исходном коде bash :
243 /* Current implementation:
244         \001 (^A) start non-visible characters
245         \002 (^B) end non-visible characters
246    all characters except \001 and \002 (following a \001) are copied to
247    the returned string; all characters except those between \001 and
248    \002 are assumed to be `visible'. */
Специфичные для bash \[ и \] фактически транслируются в \001 и \002 при y.tab.c:7640 .
Примечание. Если вы используете команду printf или echo -e bash , и если ваш текст имеет \001 или \002 непосредственно перед числом, вы обнаружите ошибку bash , из-за которой при обработке восьмеричных кодировок она съедает одну цифру слишком много - то есть \00142 будет интерпретироваться как восьмеричный 014 (за которым следует ASCII "2") вместо правильного восьмеричного 01 (за которым следует ASCII "42"). По этой причине используйте шестнадцатеричные версии \x01 и \x02 .