如何在 gnu 螢幕下運行的 bash 腳本中敲響音頻鈴聲?

如何在 gnu 螢幕下運行的 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'

這是因為printf大多數 shell 中的內建功能都運作良好,並且還有printf與 Linux/Mac 系統一起安裝的等效可執行版本。

其他選項: 如果您安裝了curses,那麼您也可以使用:tput bel 如果您使用最新版本的bash,那麼您可以使用:echo -e '\a'

相關內容