Bash 5.3 では、コマンド置換の改善、新しい変数、C23 サポートが追加されました。

バッシュ Linux

数日前 GNUプロジェクトはBash 5.3の新バージョンのリリースを発表しました。 ほとんどの Linux ディストリビューションでデフォルトの選択肢となっている人気のコマンド インタープリタ。

この新しいバージョン 約3年間の作業を表すは、シェルの言語と動作の改善だけでなく、C23などの最新標準に準拠した新機能も導入しています。また、Readline 8.3ライブラリもリリースされています。

Bash 5.3 の新機能

Bash 5.3で最も注目すべき変更点のXNUMXつは、 新しい形式のコマンド置換の導入: ${command;} と ${|command;}これらを使用すると、子プロセスを作成したりパイプラインを使用したりすることなく、コマンドの出力をインターセプトできるため、リソース消費を削減し、パフォーマンスを向上させることができます。結果はREPLY変数に直接保存できるため、一般的な出力キャプチャタスクが簡素化されます。

GNU Bash 5.3で導入されたもう一つの新機能は、 新しい変数 GLOBSORT ことができます ファイルパスを展開する際の並べ替え順序を定義します。 ユーザーは、名前、サイズ、変更日などで並べ替えることができ、昇順と降順の両方のオプションがあります。

さらに、Bash 5.3ではいくつかの組み込みコマンドに改良が加えられました。コマンド compgenは生成された補完を変数に保存できるようになりました (-V varname) ですが、read には -E オプションが追加され、Readline ライブラリを Bash の自動補完ルールと組み合わせて使用​​できるようになりました。ソースも改良され、検索パスを変更するための -p PATH をサポートするようになりました。

同様に、コマンド umaskはPOSIX仕様に完全に準拠するように調整されました。また、printf は、マルチバイト文字列の新しいオプションと、文字および文字列の代替表現によって改善されました。

C23との互換性とK&R Cとの別れ

最も重要な構造変化の一つは、 C23規格の採用 Bashのソースコードに。その結果、 「K&R C」モードでのコンパイルのサポートが削除されましたこれは、C 言語の初期の頃にまで遡る手法です。

一方、Bash 5.3 では、次のようないくつかのロード可能なコマンドが導入されています。

  • キーワード: キー値形式のデータから連想配列を生成します。
  • ストリップタイム: テキスト形式の日付を Unix 時間に変換します。
  • fltexpr: let の動作をエミュレートして、浮動小数点算術演算を実行できます。

さらに、 動的変数BASH_MONOSECONDSが追加されましたその システム時間の単調なカウンターを提供する時間的な安定性が重要なタスクに役立ちます。

POSIX モードでは、Bash は < 演算子と > 演算子を使用して文字列の比較を実行するようになりました。 地域設定を尊重します。また、test、trap、wait、bindなどのコマンドの動作も標準の要件に厳密に従います。例えば、trap -Pを使用すると各シグナルのトラップアクションを出力でき、wait -nを使用すると終了したプロセスと置換の管理が改善されます。

リードライン 8.3

BashのコンパニオンであるReadlineライブラリもメジャーアップデートされました。注目すべき新機能は以下のとおりです。

  • 大文字と小文字を区別しない検索: 履歴内で大文字と小文字を区別しない検索を可能にします。
  • エクスポート補完: 外部処理のために単語の可能な補完をエクスポートします。
  • 名前付きコマンドを実行: 標準入力から名前を読み取ったコマンドを実行します。スクリプト作成やカスタマイズに役立ちます。
  • マクロ サポートの改善、新しい構成可能な変数、再開後の画面サイズの処理の改善 (SIGCONT)。

Linux での Bash のインストールとアップデート

LinuxにBashをインストールまたはアップデートしたい方は、使用しているディストリビューションによって手順が異なることを知っておく必要があります。以下では、主要なディストリビューションでの手順を説明します。

Debianベースのディストリビューション(Ubuntu、Linux Mintなど)

sudo apt install --only-upgrade bash

これにより、Bash が公式リポジトリで利用可能な最新バージョンに更新されます。

最初からインストールする場合(たとえば、非常に最小限のシステムの場合):

sudo apt install bash

Red Hatベースのディストリビューション(Fedora、CentOS、RHELなど)

sudo dnf update bash Bash をインストールするには(まだインストールされていない場合):
sudo dnf install bash

Arch Linuxとその派生版(Manjaroなど)

sudo pacman -Syu bash

これにより、システム全体とともにBashもアップデートされます。Bashのみをインストールするには:

sudo pacman -S bash