如何在 gnu screen 下运行的 bash 脚本中响起音频铃声?

如何在 gnu screen 下运行的 bash 脚本中响起音频铃声?

在屏幕外的 konsole 终端窗口中运行 bash shell,并将 TERM 设置为 konsole-256color,如果我输入:

echo -n $'\a'

或者

echo -n $'\eg'

或者

./ringbell.sh

其中的内容ringbell.sh

#!/bin/bash
echo -n $'\eg'
echo -n $'\a'

它们都会导致配置的音频铃声响起。如果我进入屏幕会话(我的~/.screenrc也设置了TERM=konsole-256color),则只有上述 3 个命令中的第二个(echo -n $'\eg')会导致听到音频铃声。我必须修改脚本吗?或者这是 的问题screen

screen 4.1.0~20120320gitdb59704-9从 Ubuntu 使用。

答案1

从记忆中看,Ctrl-G 是铃声字符,所以我认为这就是第二个起作用的原因。但是 screen 可能会对它接受的字符很挑剔,因为它接受 Ctrl-A 作为命令代码。

尝试这个

#!/bin/sh
# Ring the terminal bell
# echo "\a" # does not work in some shells
tput bel

我发现这个罗塞塔代码,希望它能给你一些选择

答案2

最佳解决方案:printf '\a'

这是因为大多数 shell 中内置的运行良好,并且还安装了 Linux/Mac 系统中printf等效的可执行版本。printf

其他选项:如果您安装了 curses,那么您也可以使用:tput bel 如果您使用最新版本的 bash,那么您可以使用:echo -e '\a'

相关内容