ユーザー入力が必要なときに端末のビープ音を鳴らす方法は?

ユーザー入力が必要なときに端末のビープ音を鳴らす方法は?

たとえば、システムを更新するコマンドを実行するのに時間がかかります。パスワードを再入力または確認する必要があるときに音が聞こえるようにしたいと思います。私はArchでZshを使用しています。ありがとうございます!

答え1

端末はアプリケーションが入力をいつ読み取るのか分からないため、普遍的な解決策はありません。

アプリケーションが入力を待つ前にプロンプ​​トを表示し、そのプロンプトを構成できる場合は、以下を追加します。ベルキャラクターこのヒントに。ベル文字はCtrl + Gです。バックスラッシュエスケープがサポートされている場合に書き込むことができます\a

たとえば、sudo プロンプトでベルを鳴らすには、visudo次の行を実行してsudoersファイルに追加します。

Defaults passprompt="␇[sudo] password for %p: "

代わりに実際のCtrl + G文字を使用してください(制御文字の入力方法については、エディタの設定を確認してください)。

ベル文字の効果は、端末とその構成によって異なります。多くの端末では、タイトルバーの点滅などの効果を作成できます。

答え2

少し横にありますが、CPU使用率が低いときにトリガーできます。いくつかの偽の肯定が出てくるかもしれませんが、最終的には入力を待っているプロセスが見つかります。

batch1つのアプローチは、呼び出しのみをスケジュールし、echo -ne '\007'ターミナルチャイムベルを再生するスクリプトを使用することです。このスクリプト(BSDで呼び出されたが、私が知っている限り、Archには名前がありません)は、プロセッサの負荷がプリセット値を下回ったbatchときに実行されます。_LOADAVG_MX

プリセットロードしきい値を変更するには、次を参照してください。https://unix.stackexchange.com/a/306965/216323

関連情報