ico*_*ast 22
-e如果没有它,它会尝试添加您可能需要添加-e选项echo(至少在我使用的所有或大多数系统上都需要).以下将告诉您的系统闪烁文本:
echo -e "\033[5mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
你不必选择要么黄色或闪烁.你也可以吃蛋糕,也可以吃.
echo -e "\033[33;5mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
您的系统可能会忽略闪烁代码 - 这似乎很常见.如果要使文本突出显示,但忽略闪烁,则可以使用以下颜色反转颜色7:
echo -e "\033[33;7mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
或者你可以使用闪烁和颜色反转(和黄色):
echo -e "\033[33;5;7mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
是否可以使闪烁工作取决于终端仿真器。该系统本身是无关的。
问题中给出的示例非常接近,只需更改转义序列即可使用任何POSIX shell:
echo "\033[33;5mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
该-e建议是不需要的(它是一个bashism,非标准的,通常不需要)。将7(反向)更改为5(闪烁)可以执行要求的操作。
您可以使用tput,而不是对转义进行硬编码,例如,
printf '%s%s%s%s' "$(tput setaf 3)" "$(tput blink)" "Title of the Program" "$(tput sgr0)"
Run Code Online (Sandbox Code Playgroud)
具有相同的效果,但有两个区别:
$TERM。例如,VTE(用于各种皮肤(如gnome-terminal)的库)不支持眨眼(并且可以在各种错误报告中找到其开发人员对该主题的看法)。使用infocmp以显示相应的终端功能表明,以及其他一些区别:
$ infocmp vte xterm
comparing vte to xterm.
comparing booleans.
km: F:T.
mc5i: F:T.
npc: F:T.
comparing numbers.
comparing strings.
blink: NULL, '\E[5m'.
cnorm: '\E[?25h', '\E[?12l\E[?25h'.
cvvis: NULL, '\E[?12;25h'.
enacs: '\E)0', NULL.
is2: '\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8', '\E[!p\E[?3;4l\E[4l\E>'.
kb2: '\E[E', '\EOE'.
kfnd: '\E[1~', NULL.
kslt: '\E[4~', NULL.
mc0: NULL, '\E[i'.
mc4: NULL, '\E[4i'.
mc5: NULL, '\E[5i'.
rep: NULL, '%p1%c\E[%p2%{1}%-%db'.
rmacs: '^O', '\E(B'.
rmcup: '\E[2J\E[?47l\E8', '\E[?1049l'.
rmm: NULL, '\E[?1034l'.
rs2: '\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h', '\E[!p\E[?3;4l\E[4l\E>'.
setb: NULL, '\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
setf: NULL, '\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m'.
sgr: '\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;', '%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m'.
sgr0: '\E[0m\017', '\E(B\E[m'.
smacs: '^N', '\E(0'.
smcup: '\E7\E[?47h', '\E[?1049h'.
smm: NULL, '\E[?1034h'.
Run Code Online (Sandbox Code Playgroud)
如果您碰巧使用KDE konsole,则差异会更长(尽管konsole碰巧支持眨眼)。
只需使用printf而不是echo:
printf "\e[6;33mTitle of the Program\e[0m"
Run Code Online (Sandbox Code Playgroud)
该行打印Title of the Program有黄色闪烁文本。
据我所知,它的意思是:
echo " \033[5mTitle of the Program\033[0m"
Run Code Online (Sandbox Code Playgroud)
唯一的变化是标题前的33m改为5m。请参阅Ansi 转义码
请注意,有些系统会过滤掉眨眼,因为它确实很烦人。你的旅费可能会改变。
| 归档时间: |
|
| 查看次数: |
47126 次 |
| 最近记录: |