約2年の開発期間を経て (正確にはXNUMXか月の開発) の発売 GNU シェルの新しいバージョン バッシュ5.2、 これは 5 番目のブランチ (5.1.x) の更新であり、このリリースでは bash-XNUMX のいくつかの注目すべきバグが修正され、多くの新機能が導入されています。
bash を初めて使用する方は、これがほとんどの Linux ディストリビューションのデフォルト シェルであることを知っておく必要があります。
Bash5.2の主な新機能
Bash 5.2 から提供されるこの新しいバージョンでは コマンド置換構造を分析するためにコードを書き直す作業が行われたことに注意してください "$(command)" や `command` などの別のコマンドを実行するときの出力を置き換えます。 新しい実装は、bison パーサーを再帰的に呼び出します。 これにより、以前のバージョンで使用されていたアドホックな解析が置き換えられ、より優れた構文チェックが可能になり、構文エラーをはるかに早くキャッチできます。
この新しいバージョンの Bash 5.2 で際立っているもう XNUMX つの変更点は、 配列インデックスの解析と展開の改善、 さらに、組み込みコマンドで "@" および "*" パラメータを使用して、配列全体をリセットする代わりにキーを特定の値にリセットする機能が実装されました。
これに加えて、 新しい設定「patsub_replacement」を追加し、 設定すると、置換文字列の「&」文字を使用して、特定のパターンに一致する文字列の一部が置換されます。
また readline 待機時間の新しいフレームワークがあることが強調されています。 新しいものを含む
タイムアウトを設定し、タイムアウトまでの残り時間を確認するパブリック関数に加えて、新しい設定オプション --with-shared-termcap-library があります。これは、共有 readline ライブラリを共有 termcap ライブラリ (または curses /ncurses/termlib) なので、アプリケーションはそうする必要はありません。
その他の変更点 この新しいバージョンの Bash 5.2 から際立っている点:
- 追加のプロセスがフォークされない状況の数が拡大されました。たとえば、「$(」コンストラクトを使用するときにフォークは使用されなくなりました。
- タイマーとタイムアウトの計算のための新しい内部フレームワークを実装しました。
- コンパイル時に有効にする ( --enable-alt-array-implementation を構成する) 機能を提供しました。これは、メモリ消費の増加を犠牲にして最大のアクセス速度のために最適化された代替配列実装です。
- ローカリゼーションで使用される $'…' および $»…» 置換の拡張使用。
- 'printf' には、新しいフォーマット指定子 '%Q' があります。 これは "%q" のように動作しますが、指定された精度を引用符なしで元の引数に適用し、結果を引用して出力します。
- $"..." ローカライズ可能な置換のサポートを有効にするかどうかを制御する noexpand_translations 設定と "configure --enable-translatable-strings" ビルド オプションを追加しました。
- posix モードでは、浮動小数点変換指定子が存在する場合は `printf' を long double として使用できるようになりました。
- 「.」を避けるために「globskipdots」が追加され、デフォルトで有効になっています。 および「..」ルートを展開するとき..
同時に、コマンド ライン編集を整理するために bash で使用される readline 8.2 ライブラリがリリースされました。
最後に、 このバージョンの bash は Readline ライブラリとリンクできます 必要に応じて、プライベート バージョンの代わりに lib/readline に既にインストールされています。 のバージョンに言及することだけが重要です リードライン-8.1 以降のバージョンでは、bash-5.2 が必要とするすべてのシンボルを提供できるため、以前のバージョンの Readline ライブラリは正しく機能しません。
最後に、もう少し詳しく知りたい方、今すぐこの新しいバージョンを入手したい方のために、 次のリンクにアクセスできます。
LinuxでBash5.2を入手するにはどうすればよいですか?
瞬間 この新しいバージョンのBashが組み込まれるのを待つだけです。 Linuxディストリビューションのリポジトリ内で、それが最良のオプションだからです。