我知道背景颜色代码是\033[41m
,而前景颜色代码是\033[32m
。我感兴趣的是制作一个代码,用于在控制台终端 printf 语句中更改背景和前景。
答案1
答案2
printf '\033[32;44m'
# ESC[ Foreground═3 + $Nr.Color Register ; Background═4 + $Nr.Color Register hold vale of color
答案3
这些代码可用于更改单个寄存器值。因此,您可以在打印输出时完全更改颜色。:
if [ "$TERM" = "linux" ]
then : # palet
echo -en "\033[?47h" # Swap_buffer
#black #red #green #Orange #blue #magenta #cyan #(S) white
echo -ne "\e]P0000000\e]P17F0000\e]P2008000\e]P3FF4600\e]P42020AF\e]P5BF00BF\e]P600CDCD\e]P7A0A0A0"
#L black #L red #L green #L yellow #L blue #L Cream #S Blue #L white
echo -ne "\e]P8404040\e]P9C41414\e]PA3CFF00\e]PBE2E200\e]PC4141FF\e]PDFFC8C8\e]PE9696FF\e]PFFFFFFF"
# get rid of artifacts
# clear
echo -en "\033[?47l" # Main_buffer
fi
答案4
使用 ANSI 转义码设置文本颜色的一般格式为:
\033[<样式>;<前景>;<背景>m
- \033 以八进制表示的转义字符,启动 ANSI 转义序列。
- [ 是控制序列引入器。
- <style>、<foreground> 和 分别是代表文本样式(如粗体或下划线)、前景(文本)颜色和背景颜色的数字代码的占位符。
- m 表示该序列是颜色/图形模式设置。
这是一个示例 bash 脚本:
#!/bin/bash
# Define color and reset
RED_TEXT="\033[0;31m"
GREEN_BG="\033[42m"
RESET="\033[0m"
# Use variables
echo -e "${RED_TEXT}${GREEN_BG}Hello, World!${RESET}"
以下是一些常见前景色和背景色的快速参考:
前景色:
Black: 30
Red: 31
Green: 32
Yellow: 33
Blue: 34
Magenta: 35
Cyan: 36
White: 37
背景颜色:
Black: 40
Red: 41
Green: 42
Yellow: 43
Blue: 44
Magenta: 45
Cyan: 46
White: 47