Âm thanh như bạn muốn điều ngược lại in ấn chúng theo nghĩa đen, bạn muốn những ký tự thoát chuyển đổi sang một hình thức mô tả có thể in được như \E
hoặc \033
, ^[
...
Nếu đó chỉ là ký tự ESC (0x1b) mà bạn muốn chuyển đổi thành \E
, thì với ksh93
, zsh
hoặc bash
(thông thường, các ký tự tương tự cũng hỗ trợ không chuẩn đó %q
), bạn có thể thực hiện:
printf '%s\n' "${red//$'\e'/\\E}"
Hoặc đường ống đến sed $'s/\e/\\\\E/g'
Đối với cách tiếp cận chung hơn trong việc chuyển đổi các ký tự phi đồ họa, bạn có thể sử dụng:
$ printf %s "$red" | od -A n -vt c # POSIX
033 [ 3 1 m
$ printf %s "$red" | sed -n l # POSIX
\033[31m$
$ printf '%s\n' "${(qqqq)red}" # zsh
$'\033[31m'
$ printf '%s\n' "$red" | cat -vt # some cat implementations
^[[31m
$ printf %s "$red" | uconv -x ':: [:Cc:]; ::Hex;' # ICU tools
\u001B[31m
$ printf %s "$red" | uconv -x ':: [:Cc:]; ::Name;' # ICU tools
\N{<control-001B>}[31m
\E
hoặc các ký tự điều khiển khác?