8.34. Bash-5.1

Bash 软件包包含 Bourne-Again SHell。

估计构建时间: 1.6 SBU
需要硬盘空间: 51 MB

8.34.1. 安装 Bash

首先,修复使用多个处理器核心构建时的竞争条件:

sed -i  '/^bashline.o:.*shmbchar.h/a bashline.o: ${DEFDIR}/builtext.h' Makefile.in

准备编译 Bash:

./configure --prefix=/usr                    \
            --docdir=/usr/share/doc/bash-5.1 \
            --without-bash-malloc            \
            --with-installed-readline

配置选项的含义:

--with-installed-readline

该选项告诉 Bash 使用系统中已经安装的 readline 库,而不是它自己的 readline 版本。

编译该软件包:

make

如果不运行测试套件,跳到 安装该软件包

为了准备进行测试,确保 tester 用户可以写入源代码目录:

chown -Rv tester .

现在以 tester 用户的身份运行测试:

su tester << EOF
PATH=$PATH make tests < $(tty)
EOF

安装该软件包,并把主要的可执行文件移动到 /bin

make install
mv -vf /usr/bin/bash /bin

执行新编译的 bash 程序 (替换当前正在执行的版本):

exec /bin/bash --login +h
[注意]

注意

上面使用的参数使得 bash 进程是一个可交互的登录 shell,并且仍然禁用散列功能,这样新程序一旦可用就会被找到。

8.34.2. Bash 的内容

安装的程序: bash, bashbug, 以及 sh (到 bash 的链接)
安装的目录: /usr/include/bash, /usr/lib/bash, 和 /usr/share/doc/bash-5.1

简要描述

bash

一个广泛使用的命令解释器;它在执行命令前对命令行进行多种展开和替换操作,这些操作使得它成为强大的工具。

bashbug

一个 shell 脚本,用于帮助用户按照电子邮件标准格式编写关于 bash 的 bug 报告

sh

一个指向 bash 程序的符号链接;当以 sh 命令运行时,bash 试图尽可能地模仿 sh 的历史版本,以符合 POSIX 标准