我该如何使用 ANSI 转义格式化文本?
例如,使文字 斜体 或 粗体,或添加删除线和上标。
我该如何使用 ANSI 转义格式化文本?
例如,使文字 斜体 或 粗体,或添加删除线和上标。
粗体:使用 ESC[1m
不支持斜体、删除线和上标。
某些终端支持其他序列。例如,在 Gnome 终端中,您可以使用:
echo -e "\e[1mbold\e[0m"
echo -e "\e[3mitalic\e[0m"
echo -e "\e[4munderline\e[0m"
echo -e "\e[9mstrikethrough\e[0m"
echo -e "\e[31mHello World\e[0m"
echo -e "\x1B[31mHello World\e[0m"
来源:如何在Gnome终端中使用下划线、加粗、斜体、删除线、颜色、背景和大小?,答案来自Sylvain Pineau
chmod +x
)\x1b
、\033
和 \e
来表示 ESC。#!/bin/bash
_esc_seq="\x1b["
_esc_end="${_esc_seq}0m"
# $1: escape code
# $2: message
print_test_style() {
echo -e "\t${_esc_seq}${1}m${2}${_esc_end}\n"
}
declare -a _style_codes=(
["1"]="bold"
["2"]="dim"
["3"]="emphasis"
["4"]="underline"
["9"]="strikethrough"
)
echo -e "Testing styles...\n"
for key in "${!_style_codes[@]}"; do
print_test_style "${key}" "${_style_codes[$key]}"
done