BASH: 终端如何设置为闪现?

BASH: how can the terminal be set to flash?

我想要一个 BASH 终端闪烁。目标是让终端在两种颜色之间闪烁,比如白色和黑色,基本上使用标准 Linux 实用程序。我不介意终端是否充满字符并清除以执行此操作。粗略的描述如下:

你问的叫看得见的钟。它可以在主要的终端仿真器上启用,例如 xterm(Ctrl + 中键菜单)或 putty(Settings/Terminal/Bell)。不幸的是,没有通用的方法来做到这一点。

但是一旦完成,echo Ctrl+G 会使终端闪烁而不是发出蜂鸣声。

您可以使用以下 shell 命令在正常和反向视频之间切换:

printf '\e[?5h'  # Turn on reverse video
printf '\e[?5l'  # Turn on normal video

您可以从 Bash 内联调用 Python,如下所示

 python -c 'import curses ; w=curses.initscr() ; curses.flash() ; curses.endwin() '

这是我用于此目的的一个小 bash 脚本。当您按 ctrl-c 时,它还会重置终端。

#!/usr/bin/env bash
set -e

trap ctrl_c INT

function ctrl_c() {
    printf '\e[?5l'
}

while true; do
    printf '\e[?5h'
    sleep 0.5
    printf '\e[?5l'
    sleep 0.5
done