画面外の konsole ターミナル ウィンドウで、TERM を konsole-256color に設定して bash シェルを実行しているときに、次のように入力します。
echo -n $'\a'
または
echo -n $'\eg'
または
./ringbell.sh
の内容ringbell.sh
は
#!/bin/bash
echo -n $'\eg'
echo -n $'\a'
これらすべての結果、設定されたオーディオ ベルが鳴ります。画面セッションに入ると ( も~/.screenrc
設定されますTERM=konsole-256color
)、上記の 3 つのコマンドのうち 2 番目 ( echo -n $'\eg'
) のみがオーディオ ベルを鳴らします。スクリプトを変更する必要がありますか、それとも の問題ですかscreen
?
screen
4.1.0~20120320gitdb59704-9
Ubuntuから使用しています。
答え1
記憶によれば、Ctrl-G はベル文字なので、2 番目の方法が機能したのはそのためだと思います。ただし、screen は Ctrl-A をコマンド コードとして受け取るため、受け入れる文字を厳選する場合があります。
これを試して
#!/bin/sh
# Ring the terminal bell
# echo "\a" # does not work in some shells
tput bel
私はこれを見つけましたロゼッタコード、いくつかの選択肢が見つかるといいのですが
答え2
最適な解決策:printf '\a'
これは、ほとんどのシェルに組み込まれている が適切に動作し、 Linux/Mac システムにインストールされているprintf
の同等の実行可能バージョンもあるためです。printf
その他のオプション: curses がインストールされている場合は、以下も使用できます:tput bel
最新バージョンの bash を使用している場合は、以下も使用できます:echo -e '\a'