反向视频似乎不起作用
reverse video doesn't seem to be working
我正在尝试在 bash / xterm 上启用反向视频,这样文本是黑色的,但前景是白色的。但它不起作用。这是我的命令:
echo -n -e \x1B\x07maaa\x1B[m
知道为什么它没有按预期运行吗?
在例子中
echo -n -e \x1B\x07maaa\x1B[m
\x07m
不可能是正确的,因为那将是一个 ASCII BEL。也许你的意思是这样的:
echo -n -e \x1B[7maaa\x1B[m
\x1B
是 escape 字符。所有其他字符都来自可打印的 ASCII 范围。这假设您的 echo
以这种方式解释转义(bash 是)。
更便携的是
tput rev
反向模式和
tput sgr0
清除反向模式。
另一种方式:
echo -n -e "\e[07mTEXT\e[0m"
或者:
printf "\e[07mTEXT\e[0m"
使用 bash
的 printf
命令会简单得多(正如 Thomas Dickey 所指出的,您使用了错误的序列来启用反转视频)。问自己需要堆叠多少个反斜杠几乎总是错误的问题。
# \e[7m starts inverse video
# \e[m (short for \e[0m) resets all video parameters to their default values
printf '\e[7maaa\e[m'
我正在尝试在 bash / xterm 上启用反向视频,这样文本是黑色的,但前景是白色的。但它不起作用。这是我的命令:
echo -n -e \x1B\x07maaa\x1B[m
知道为什么它没有按预期运行吗?
在例子中
echo -n -e \x1B\x07maaa\x1B[m
\x07m
不可能是正确的,因为那将是一个 ASCII BEL。也许你的意思是这样的:
echo -n -e \x1B[7maaa\x1B[m
\x1B
是 escape 字符。所有其他字符都来自可打印的 ASCII 范围。这假设您的 echo
以这种方式解释转义(bash 是)。
更便携的是
tput rev
反向模式和
tput sgr0
清除反向模式。
另一种方式:
echo -n -e "\e[07mTEXT\e[0m"
或者:
printf "\e[07mTEXT\e[0m"
使用 bash
的 printf
命令会简单得多(正如 Thomas Dickey 所指出的,您使用了错误的序列来启用反转视频)。问自己需要堆叠多少个反斜杠几乎总是错误的问题。
# \e[7m starts inverse video
# \e[m (short for \e[0m) resets all video parameters to their default values
printf '\e[7maaa\e[m'