新機能でリリースされたBash 5.0

メーリングリストは最近Bash-5.0のリリースを確認しました。 そして、それが新しい機能と可変性で焼き付けられたことを知るのはとてもうれしいです。

Bash 4.4.XXを使用しているのであれば、Bashの5番目のメジャーリリースを間違いなく気に入るはずです。

5番目のリリースでは、新しいシェル変数と、オーバーホールを伴う多くの主要なバグ修正に焦点が当てられています。 それはまたbash-4.4とbash-5.0の間のいくつかの互換性のない変更と共にいくつかの新機能を紹介します。

新機能はどうですか?

メーリングリストは、この新しいリリースで修正されたバグを説明しています。

このリリースはbash-4.4のいくつかの未解決のバグを修正し、いくつかの新機能を紹介します。 最も重要なバグ修正は、nameref変数がどのように解決されるかの見直しと、ファジングによって発見されたいくつかの潜在的な範囲外メモリエラーです。 Posix標準の解釈に準拠するように単語分割が行われないさまざまな状況で[email protected]および$ *の拡張に多くの変更があり、Posix準拠のためのコーナーケースを解決するための追加の変更があります。

また、いくつかの新機能も紹介しています。 リリースノートによると、これらは最も注目すべき新機能はいくつかの新しいシェル変数です。

BASH_ARGV0、EPOCHSECONDS、およびEPOCHREALTIME。 'history'組み込みは履歴エントリの範囲を削除することができ、履歴リストの末尾からのオフセットとして負の引数を理解します。 ローカル変数が前のスコープで同じ名前の変数の値を継承できるようにするオプションがあります。 新しいシェルオプションがあり、有効にすると、シェルは連想配列の添字を1回だけ拡張しようとします(これが算術式で使用されている場合の問題です)。 'globasciiranges'シェルオプションがデフォルトで有効になりました。 構成時にデフォルトでオフに設定できます。

Bash-4.4とBash-5.0の間の変更はどうですか?

更新ログは、互換性のない変更とサポートされているreadlineのバージョン履歴について述べています。 それはそれが言ったことです:

bash-4.4とbash-5.0の間に互換性のない変更がいくつかあります。 nameref変数の解決方法の変更は、互換性の問題を最小限に抑えるようにしていますが、namerefの使用方法によっては動作が異なることを意味します。 デフォルトでは、拡張デバッグモードが有効な場合、シェルは起動時にBASH_ARGCとBASH_ARGVのみを設定します。 スクリプトが無条件に設定され、スクリプトに多数の引数が渡されたときにパフォーマンスの問題が発生することは見落としでした。

必要ならば、bashはlib / readlineのプライベート版ではなく、既にインストールされているReadlineライブラリに対してリンクすることができます。 readline-8.0以降のバージョンだけが、bash-5.0が必要とするすべてのシンボルを提供することができます。 Readlineライブラリの以前のバージョンは正しく動作しません。

追加された機能や変数の中には非常に便利なものがあると思います。 私のお気に入りの中には:

  • 実行時にsyslogへの履歴の送信を有効または無効にするための新しい(デフォルトでは無効、文書化されていない)シェルオプションがあります。
  • ドキュメンテーションが常に言っているように、シェルは起動時にBASH_ARGCとBASH_ARGVをデバッグモードでない限り自動的に設定しませんが、デバッグモードを有効にせずにスクリプトがトップレベルでそれらを参照すると動的に作成します。
  • 'history'は '-d start-end'を使って履歴エントリの範囲を削除することができます。
  • ジョブ制御が有効になっている非対話型シェルが、SIGINTのためにフォアグラウンドジョブが停止したことを検出した場合は、SIGINTを受信した場合と同じように動作します。
  • BASH_ARGV0:$ 0に展開され、代入時に$ 0を設定する新しい変数。

変更点と機能の完全なリストを確認するには、メーリングリストの投稿を参照してください。

まとめ

このコマンドを使って、現在のBashのバージョンを確認することができます。

 bash - バージョン 

おそらくBash 4.4がインストールされているでしょう。 新しいバージョンを入手したい場合は、ディストリビューションがそれを提供するのを待つことをお勧めします。

Bash-5.0が利用可能になったとき、あなたはそれについてどう思いますか? あなたはbashに代わるものを使っていますか? もしそうなら、この更新はあなたの心を変えるでしょうか?

以下のコメントであなたの考えを教えてください。

推奨されます

Kali LinuxとDebianがMicrosoftストアで入手可能になりました
2019
UbuntuとLinux MintにApache OpenOfficeをインストールする
2019
Ubuntuで自動システムアップデートを有効にする
2019