Bash は Bourne-Again Shell を提供します。
Bash をコンパイルするための準備をします。
./configure --prefix=/usr             \
            --without-bash-malloc     \
            --with-installed-readline \
            --docdir=/usr/share/doc/bash-5.2.37
        configure オプションの意味
--with-installed-readline
            
                このオプションは Bash が持つ独自の readline
                ライブラリではなく、既にインストールした readline
                ライブラリを用いることを指示します。
              
パッケージをコンパイルします。
make
テストスィートを実行しない場合は「パッケージをインストールします。」と書かれた箇所まで読み飛ばしてください。
          テストを実施するにあたっては tester
          ユーザーによるソースツリーへの書き込みを可能とします。
        
chown -R tester .
          本パッケージのテストスイートは、非 root
          ユーザーが実行するものとされていて、利用する端末が標準入力に接続できているものとしています。
          この仕様を満たすためには、Expect
          を使って新たな疑似端末を起動します。 そして tester
          ユーザーとしてテストを実行します。
        
su -s /usr/bin/expect tester << "EOF" set timeout -1 spawn make tests expect eof lassign [wait] _ _ _ value exit $value EOF
          テストスイートでは diff
          を使って、テストスクリプトの出力結果と期待される出力結果との差異を調べています。 diff からの出力(先頭行に < と >)があれば、テストが失敗したことを表します。
          ただしその差異は無視できる旨を示すメッセージがあれば問題ありません。 run-builtins というテストは、出力の第 1
          行めが異なるということで、特定のホストディストリビューションでは失敗する場合があります。
        
パッケージをインストールします。
make install
新たにコンパイルした bash プログラムを実行します。(この時点までに実行されていたものが置き換えられます。)
exec /usr/bin/bash --login