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