在螢幕外的 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'