10.8 可选择的功能

评论 0 浏览 0 2023-01-26

Bash configure有许多--enable-feature选项,其中feature表示Bash的可选部分。还有几个--with-package选项, 其中package是类似‘bash-malloc’或‘purify’的东西。 要关闭一个包的默认使用, 使用--without-package。要配置Bash而不使用默认启用的功能,使用--disable-feature

下面是Bash configure识别的--enable---with-选项的完整列表。

--with-afs

如果你使用的是Transarc公司的Andrew文件系统,请定义。

--with-bash-malloc

使用目录中lib/malloc的Bash版本的malloc。这不是出现在GNUlibc中的malloc,而是最初从4.2 BSD malloc衍生出来的一个旧版本。这个malloc非常快,但在每次分配时都会浪费一些空间。 这个选项在默认情况下是启用的。 NOTES文件包含了一个应该关闭这个选项的系统列表,configure在一些系统中自动禁用这个选项。

--with-curses

使用curses库而不是termcap库。如果你的系统有一个不充分或不完整的termcap数据库,应该提供这个库。

--with-gnu-malloc

--with-bash-malloc的同义词。

--with-installed-readline[=PREFIX]

定义这个以使Bash与本地安装的Readline版本链接,而不是lib/readline中的版本。这只适用于Readline 5.0及以后的版本。如果PREFIXyes或者没有提供,configure会使用make变量includedirlibdir的值,这些变量默认是prefix的子目录,如果Readline不在标准的系统include和library目录中,就会找到它的安装版本。如果PREFIXno,Bash会与lib/readline中的版本链接。 如果PREFIX被设置为任何其他值,configure会将其视为一个目录路径名,并在该目录的子目录中寻找Readline的安装版本(包括文件在PREFIX/include,库在PREFIX/lib)。

--with-libintl-prefix[=PREFIX]

定义这一点是为了使Bash与本地安装的libintl库的版本相连接,而不是与lib/intl中的版本相连接。

--with-libiconv-prefix[=PREFIX]

定义这一点可以使Bash在PREFIX中寻找libiconv,而不是在标准的系统位置。Bash中没有包含任何版本。

--enable-minimal-config

这就产生了一个具有最小功能的shell,接近于历史上的Bourne shell。

有几个--enable-选项改变了Bash的编译、链接和安装方式,而不是改变了运行时的特性。

--enable-largefile

如果操作系统需要特殊的编译器选项来构建可以访问大文件的程序,则启用对大文件的支持。如果操作系统提供了对大文件的支持,默认情况下会启用该功能。

--enable-profiling

这将建立一个Bash二进制文件,在每次执行时产生剖析信息,由gprof来处理。

--enable-separate-helpfiles

使用外部文件来显示help内建程序的文档,而不是在内部存储文本。

--enable-static-link

这将导致Bash被静态链接,如果gcc被使用的话。 这可以用来构建一个作为root’shell "的版本。

minimal-config’选项可用于禁用以下所有选项,但它会被首先处理,因此可以使用‘enable-feature’启用个别选项。

除了‘alt-array-implementation’、‘disabled-builtins’、‘direxpand-default’、‘strict-posix-default’,以及‘xpg-echo-default’默认为启用,除非操作系统没有提供必要的支持。

--enable-alias

允许别名扩展,并包括aliasunalias内置(见6.6 别名)。

--enable-alt-array-implementation

这是用另一种数组实现方式来构建bash(见6.7 数组),它提供了更快的访问速度,但代价是要使用更多的内存(有时是很多倍,取决于数组的稀疏程度)。

--enable-arith-for-command

包括对另一种形式的for命令的支持,该命令的行为类似于C语言的for语句(见5.1 循环结构)。

--enable-array-variables

包括对一维数组壳变量的支持(见6.7 数组)。

--enable-bang-history

包括对csh类历史替换的支持(见9.3 历史扩展)。

--enable-brace-expansion

包括 csh 类似大括号的扩展 ( b{a,b}cbac bbc ).参见 大括号扩展, 以获得完整的描述。

--enable-casemod-attributes

declare内置和赋值语句中包括对修改大小写属性的支持。例如,带有uppercase属性的变量在赋值时将被转换为大写字母。

--enable-casemod-expansion

包括对修改大小写的单词扩展的支持。

--enable-command-timing

包括支持识别time为保留字,并显示time之后的管道的时间统计(见3 管道)。 这允许对管道以及shell内置程序和函数进行时间统计。

--enable-cond-command

包括对[[条件命令的支持。 (见5.2 条件性结构)。

--enable-cond-regexp

包括支持在[[条件命令中使用‘=~’二进制操作符匹配POSIX正则表达式。 (见5.2 条件性结构)。

--enable-coprocesses

包括对协处理和coproc保留字的支持(见3 管道)。

--enable-debugger

包括对bash调试器的支持(单独分发)。

--enable-dev-fd-stat-broken

如果在/dev/fd/N上调用stat的结果与在文件描述符N上调用fstat的结果不同,提供这个选项以启用一个变通方法。 这对测试文件属性的条件性命令有影响。

--enable-direxpand-default

使direxpand shell选项(见2 Shopt 内置程序)在shell启动时被默认启用。 它通常被默认为禁用的。

--enable-directory-stack

包括对类似于csh的目录栈以及pushdpopddirs的内置支持(见6.8 目录堆栈)。

--enable-disabled-builtins

允许通过‘builtin xxx’调用内置命令,即使在使用‘enable -n xxx’禁用了xxx之后。 请参阅4.2 Bash的内置命令,了解关于builtinenable内置命令的细节。

--enable-dparen-arithmetic

包括对((…))命令的支持(见5.2 条件性结构)。

--enable-extended-glob

包括对上述8.1 模式匹配项下描述的扩展模式匹配功能的支持。

--enable-extended-glob-default

将上述2 Shopt 内置程序项下描述的extglob shell选项的默认值设置为启用。

--enable-function-import

包括支持从环境中导入由另一个shell实例导出的函数定义。这个选项在默认情况下是启用的。

--enable-glob-asciirange-default

将上述2 Shopt 内置程序下描述的globasciiranges shell选项的默认值设置为启用。 这可以控制在模式匹配括号表达式中使用字符范围时的行为。

--enable-help-builtin

包括help内建程序,它可以显示关于shell内建程序和变量的帮助(见4.2 Bash的内置命令)。

--enable-history

包括命令历史和fchistory的内置命令(见9.1 Bash 历史工具)。

--enable-job-control

如果操作系统支持作业控制功能(见7 作业控制),这就可以启用这些功能。

--enable-multibyte

如果操作系统提供了必要的支持,这就可以实现对多字节字符的支持。

--enable-net-redirections

这使得在重定向中使用/dev/tcp/host/port/dev/udp/host/port形式的文件名时能够得到特殊的处理(见重定向)。

--enable-process-substitution

如果操作系统提供了必要的支持,这就可以实现进程替换(见6 进程替换)。

--enable-progcomp

启用可编程完成工具(见可编程完成)。 如果没有启用Readline,这个选项就没有作用。

--enable-prompt-string-decoding

打开对$PS0$PS1$PS2$PS4提示字符串中一些反斜线转义字符的解释。参见6.9 控制提示符,以获得提示符字符串转义序列的完整列表。

--enable-readline

包括用Bash版本的Readline库来支持命令行编辑和历史记录(见8 命令行的编辑)。

--enable-restricted

包括对限制性shell的支持。如果启用了这个功能,Bash在以rbash的方式被调用时,会进入一个受限模式。参见6.10 受限制的shell,以了解限制性模式的描述。

--enable-select

包括select复合命令,它允许生成简单的菜单(见5.2 条件性结构)。

--enable-single-help-strings

help内建程序所显示的文本存储为每个帮助主题的一个字符串。如果你的编译器不能处理很长的字符串字数,你可能需要禁用它。

--enable-strict-posix-default

使Bash默认符合POSIX的要求(见6.11 Bash的POSIX模式)。

--enable-translatable-strings

启用对$"string"可翻译字符串的支持(见Local-Specific Translation)。

--enable-usg-echo-default

--enable-xpg-echo-default的同义词。

--enable-xpg-echo-default

使echo内置程序默认展开反斜线转义的字符,而不需要-e选项。 这将xpg_echo外壳选项的默认值设置为on,这使得Bash echo的行为更像《单一Unix规范》第3版中指定的版本。 参见4.2 Bash的内置命令,以了解echo所识别的转义序列的描述。

文件config-top.h包含了C预处理程序‘#define’语句,用于不能从configure设置的选项。其中一些是不能改变的;如果你这样做,要小心后果。阅读与每个定义相关的注释,以了解更多关于其效果的信息。

最后更新2023-03-30
0 个评论
上一篇: 10.7 操作控制
当前页面书签