BELL文字 '\a'のメカニズムは何ですか?

BELL文字 '\a'のメカニズムは何ですか?

私はシェルプログラミングに関する本を読んでいますが、次のコマンドが同じであることがわかりました。このコマンドはMacではビープ音が鳴りますが、Ubuntuでは音が出ません。

$ echo $'\a'

$ echo -e "\a"

$

ただし、どちらの場合も、端末に空白行を入力するように求められます。私の質問は次のとおりです

  1. ここは何ですか$'\a'?パラメータ拡張、コマンド置換、または他のもの?
  2. echoたとえば、この場合、パラメータが定義されていないかのように空白行を印刷するのはなぜですか?

$ echo $NONSENSE空白行の入力を求められますか?ありがとうございます!

答え1

Ubuntuでは音を出さないでください。

たぶんあなたの特別さのせいかもしれません。端末エミュレータビープ音が鳴らないように設定したり、カーネルモジュールがアンロードされている場合など、ビープ音が鳴る他のターミナルpcspkrエミュレータ(以前のエミュレータなど)を使用できます。xterm

ここは何ですか$'\a'

読むシェル拡張章バッシュマニュアル。知られているANSI-Cの引用(解説家として南公園)。

echoが空白行を印刷するのはなぜですか?

コマンドecho(続きを読むエコ(1)...)通常bash シェル内蔵したがって、(何もなし-n)拡張引数(ここではベル文字)を印刷し、その後に改行文字が続きます。しかし、ターミナルエミュレータはベルを鳴らしません(着信音はいいえそのまま表示制御文字)

しかし、AppleがGPLv3 +ライセンスを好まないという噂があるので、アップグレードしたいかもしれません。 bashAppleコンピュータの最新バージョン(例:2017年8月現在の4.4)。

あなたは読むことができますttyが公開されましたUnixのターミナルエミュレータへの歴史的アプローチについて学びます。また、見ることができます個人有限公司(7)

関連情報