8.34. Bash-5.1.8

Bash 软件包包含 Bourne-Again SHell。

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

8.34.1. 安装 Bash

准备编译 Bash:

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

配置选项的含义:

--with-installed-readline

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

编译该软件包:

make

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

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

chown -Rv 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

编译该软件包:

make install

执行新编译的 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.8

简要描述

bash

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

bashbug

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

sh

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