bash参考手册之5(shell变量)续一
5.2 Bash变量
下面这些变量在Bash中设置或者使用,其他shell一般不会处理这些变量。
Bash使用的一些变量也在其他章节介绍:例如,控制作业的工具使用的变量,请参看‘作业控制变量’。
BASH
执行当前Bash实例的全路径名。
BASHOPTS
冒号分隔的已启用的shell选项列表。列表中的每个单词都是内建命令shopt -s 的有效参数(参看‘shopt内建命令’)。BASHOPTS中出现的选项,都是执行shopt命令时,显示状态为‘on’的那些。当Bash启动时,如果这个变量在环境中,在读入启动文件前,列表中的每个shell选项都会被启用。该变量是只读的。
BASHPID
扩展为当前Bash进程的进程ID。在某些情况下和$$的结果不同,例如不需要Bash重新初始化的子shell。
BASH_ALIASES
一个关联数组变量,其成员对应内部别名列表,该列表由内建命令alias维护。(参看‘Bourne Shell内建命令’)。增加到这个数组的元素会出现在别名列表中,删除数组元素,则对应地从别名列表中移除了相应的别名。
BASH_ARGC
一个数组变量,其值为当前bash执行调用堆栈中的每个帧中的参数个数。当前子程序(使用 . 或者source执行的shell函数或者脚本)的参数个数位于堆栈的顶部。当执行一个子程序时,传入的参数个数被压入BASH_ARGC顶部。shell仅仅在扩展调试模式时才设置这个变量。(请参看'shopt内建'章节,对extdebug选项的描述)
BASH_ARGV
是一个数组变量,包含当前bash执行调用堆栈中的所有参数。最后一个子程序调用的最后一个参数在堆栈的顶部;初始呼叫的第一个参数在底部。一个子程序被执行时,它的参数被压入BASH_ARGV。shell仅在扩展调试模式时设置BASH_ARGV,(见shopt内建命令关 于extdebug选项的描述)。
BASH_CMDS
是一个数组变量,包含的成员对应于由hash内建命令维护的那些命令的内部hash表(见bourne shell内建命令)。增加到这个数组的元素会出现在hash表中,在这个数组中删除的元素也从hash表中被删除。
BASH_COMMAND
当前正在执行的或者正要执行的命令,除非shell因为陷阱正在执行一条命令,在这种情况下是发生陷阱时正在执行的命令。
BASH_ENV
如果这个变量被设置,当Bash被调用去执行一个shell脚本时,它的值被扩展,并在脚本执行之前作为启动文件读取,见Bash启动文件。
BASH_EXECUTION_STRING
-c调用选项的命令参数。
BASH_LINENO
是一个数组变量,它的成员是源文件中的行号,每个行号对应被调用的FUNCNAME的成员。${BASH_LINENO[$i]} 是源文件 (${BASH_SOURCE[$i+1]})中,${FUNCNAME[$i]}被调用时的行号,(或者,如果在另一个shell函数中引用,是${BASH_LINENO[$i-1]})。使用LINENO获取当前的行号。
BASH_REMATCH
是一个数组变量,它的成员是使用 ‘=~’ 二进制操作符作用于 [[ 条件命令(见条件构造)的结果。索引0的元素是匹配整个正则表达式的那部分字符串。索引n的元素是匹配第n个括号子表达式的那部分字符串。此变量是只读的。
BASH_SOURCE
是一个数组变量,它的成员是源文件名,其中定义的的shell函数名对应于FUNCNAME数组变量。shell函数${FUNCNAME[$i]}在${BASH_SOURCE[$i]}文件中定义,并且从${BASH_SOURCE[$i+1]}调用。
BASH_SUBSHELL
每产生一个子shell或者子shell环境时,增加1。初始值是0。
BASH_VERSINFO
是一个只读数组变量(见数组),它的成员保存着当前Bash实例的版本信息。数组成员如下:
BASH_VERSINFO[0]
主要的版本号(发行版)。
BASH_VERSINFO[1]
次要的版本号(发行版)。
BASH_VERSINFO[2]
补丁号。
BASH_VERSINFO[3]
构造版本。
BASH_VERSINFO[4]
发行版状态(例如,beta1)。
BASH_VERSINFO[5]
MACHTYPE的值。
BASH_VERSION
当前Bash实例的版本号。
BASH_XTRACEFD
如果设置为对应于一个有效的文件描述符的一个整数,当‘set -x’ 启用时,Bash将把生成的跟踪输出到那个文件描述符。这样就可以把跟踪输出内容中的诊断和错误信息分开。当BASH_XTRACEFD被取消时,或者设置到一个新值时,该文件描述符被关闭。取消BASH_XTRACEFD或着设置为空串,会把跟踪输出发送到标准错误。注意,设置BASH_XTRACEFD到2(标准错误文件描述符),然后取消设置,会造成标准输出被关闭。
COLUMNS
当打印选择列表时,由select命令用来决定终端宽度。当收到SIGWINCH信号时,自动设置。
COMP_CWORD
COMP_LINE是一个索引,包含当前光标位置的字${COMP_WORDS}。这个变量仅在由可编程完成工具调用shell函数时可用。(见可编程完成)
当前命令行。这个变量仅在shell函数和外部命令是由可编程完成工具调用的情况下可用。(见可编程完成)COMP_POINT
当前命令开始时的当前光标位置。如果当前光标位置在当前命令的尾部,变量值等于${#COMP_LINE}。这个变量仅在shell函数和外部命令是由可编程完成工具调用的情况下可用。(见可编程完成)COMP_TYPE
设置为一个整数值,对应于试图完成的类型(该完成将调用一个完成函数):对于一般完成是TAB,对于后续tabs之后的列表完成是‘?’,对于部分字完成上的列表选择是‘!’,如果字未被修改则是列表完成,或者,对于菜单完成是 ‘%’。这个变量仅在shell函数和外部命令是由可编程完成工具调用的情况下可用。(见可编程完成)COMP_KEY
用来调用当前完成函数的键,(或者键序列的最后的键)。COMP_WORDBREAKS
一组字符,执行字完成时,被Readline库当作字分割符。如果COMP_WORDBREAKS取消设置,则它失去它的特殊属性,即使它随后被重置了。COMP_WORDS
是一个数组变量,由当前命令行中的独立字组成。该行按Readline分割方式,使用COMP_WORDBREAKS分割。这个变量仅在shell函数和外部命令是由可编程完成工具调用的情况下可用。(见可编程完成)COMPREPLY
是一个数组变量,Bash从中读取由shell函数和可编程完成工具调用产生的可能的完成。(见可编程完成)COPROC
是一个数组变量,用来保存用于输出和输入的未命名coprocess。(见协同进程)DIRSTACK
是一个数组变量,包含目录堆栈的当前内容。堆栈中出现的目录,按照dirs内建命令的显示结果顺序显示。给这个变量的成员赋值,可以用来修改堆栈中的目录,但是必须使用pushd和popd内建命令来增加和删除目录。对这个变量的赋值,不会改变当前的目录。如果DIRSTACK取消设置,则它失去它的特殊属性,即使它随后被重置了。