bash shell 内置参数
2013-04-04 23:08:24 阿炯

PPID:该bash的呼叫者process ID.
PWD:目前的工作目录。
OLDPWD:上一个工作目录。
REPLY:当read命令没有参数时,直接设在REPLY上。
UID:User ID,密码文件账号中的第三个域值
EUID:Effective User ID,有效的使用者ID。
BASH:Bash的完整路径。
BASH_VERSION:Bash版本。
BASHPID:当前bash进程的进程号。
SHLVL:每次有Bash执行时,数字加一。
RANDOM:每次这个参数被用到时,就会产生一个乱数在RANDOM上。
SECONDS:从这个Shell一开始启动後的时间。
LINENO:Script的行数。
HISTCMD:历史记录数。
OPTARG:getopts处理的最後一个选项参数。
OPTIND:下一个要由getopts所处理的参数号码。
HOSTTYPE:机器种类。
OSTYPE:作业系统名称。
IFS:Internal Field Separator。
PATH:命令搜寻路径。
PATH="/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:."
HOME:目前使用者的home directory;
CDPATH:cd命令的搜寻路径。
ENV:如果这个参数被设定,每次有shell script被执行时,将会执行它所设定的档名做为环境设定。
MAIL:如果这个参数被设定,而且MAILPATH没有被设定,那麽有信件进来时,bash会通知使用者。
MAILCHECK:设定多久时间检查邮件一次。
MAILPATH:一串的邮件检查路径。
MAIL_WARNING:如果有设定的话,邮件被读取後,将会显示讯息。
PS1:提示讯息设定,内定为"bash$ "。(请详见提示讯息一节。)
PS2:第二提示讯息设定,内定为">; "。
PS3:select命令所使用的提示讯息。
PS4:执行追踪时用的提示讯息设定,内定为"+ "。
HISTSIZE:命令历史记录量,内定为500。
HISTFILE:历史记录档,内定~/.bash_history。
HISTFILESIZE:历史记录档行数最大值,内定500。
OPTERR:如果设为1,bash会显示getopts的错误。
PROMPT_COMMAND:如果设定的话,该值会在每次执行命令前都显示。
IGNOREEOF:将EOF值当成输入,内定为10。
TMOUT:如果设为大於零,该值被解译为输入等待秒数。若无输入,当成没有输入。
FCEDIT:fc命令的内定编辑器。
FIGNORE:请详见READLINE。
INPUTRC:readline的startup file,内定~/.inputrc

CDPATH:cd命令的搜寻路径
FCEDITOR:fc命令默认的比较器
FIGNORE:在进行命令补齐时,如若想忽略的扩展名列表
FUNCNAME:在函数执行时,此变量内容即为函数式的名称
GLOBIGNORE:
GROUPS:这是一个数组变量,包含了当前用户所属组的组ID号
HISTCMD:当前指令执行完后,在历史指令中的排列编号
HISTCONTROL:控制指令是否存入历史脚本文件中
HISTFILE:设定历史脚本文件的路径文件名
HISTFILESIZE:历史脚本文件存储指令的最大行数
HISTIGNORE:不存入历史脚本文件的指令样式
HISTSIZE:历史脚本文件存储指令的最大行数
HOME:用户的家目录位置
HOSTFILE:包含自动补齐主机名的数据文件
HOSTNAME:当前主机的主机名称
HOSTTYPE:主机形态
IFS:定义字段分割符号
INPUTRC:设定命令行函数式库readline的启动配置文件,可覆盖~/.inputrc的设定
LANG:目前语系的名称
LC_ALL:目前的locale
LC_COLLATE:locale字母排序
LC_CTYPE:locale字符分类
LC_MESSAGES:locale信息显示的转换
LINENO:script已执行到的行数
MACHTYPE:描述主机形态的GNU格式,如像:i486-pc-linux-gnu
MAIL:邮件文件的名称
MAILCHECK:每隔多久就检查一次邮件,默认是60秒
MAILPATH:设定检查邮件的文件名,如果有两个以上,用:分割
PWD:当前工作目录
OLDPWD:前一个工作目录
OPTARG:使用getopts处理选项时,取得的选项的参数。
OPTIND:使用getopts处理选项时,选项的索引值
OPTERR:如果把OPTERR设置为1,则getopts发生错误时,不管选项第一个字符是否为:,仍然显示错误信息。
OSTYPE:执行bash的操作系统种类。
PATH:命令的搜寻路径
PPID:父进程的进程编号
PROMPT_COMMAND   
RANDOM:随机函数,返回0~32767之间的随机数
REPLY:select和read没有设定读取变量时,默认的变量名称为REPLY
SECONDS:目前bash shell已执行的时间
SHELL:shell文件的路径
SHELLOPTS:本变量的内容是经过set -o 设定为已开启的shell选项,以:分隔
SHLVL:子shell的层级数
TIMEFORMAT:设定time统计运行时间的格式
TMOUT:如果tmout的大于0,则bash会等待tmout秒后,自动结束目前的bash shell


位置变量
位置变量的使用一般体现在脚本中,其使得在脚本中的命令可以调用运行脚本时不同位置的参数,参数一般使用空格分隔,$0代表当前Shell程序的文件名称,$1代表运行Shell程序时的第一个参数,$2为第二个参数,依此类推(范围为$1~$9)。使用Shell位置变量有助于我们查看很多相关信息,S#代表Shell程序所有参数的个数;$*与$@均代表所有参数的内容,区别是$*将所有的参数作为一个整体,而$@将所有的参数分别作为个体看待;$$代表当前进程的ID号码,$?表示程序的退出代码(返回0一般代表命令执行成功,非0代表命令执行失败)。

S1-$n:位置参数
$*:代表所有的位置参数,并且视为一个字符串
$@:代表所有的位置参数,代表各位置参数组成的串行。
$#:位置参数的个数
$_:bash的绝对路径 或者 上一个命令执行时,最后一个位置参数
$?:上一个命令执行结束后的传回值,0表示执行成功,非0表示执行有误
$$:目前bash shell的进程编号
$!:上一个后台程序的进程编号
$-:bash shell目前使用的功能选项

notify:如果设定了,bash立即报告被终结的背景程式。
history_control, HISTCONTROL:history使用。
command_oriented_history:存入多行指令。
glob_dot_filenames:如果设定了,bash将会把"."包含入档案路径中。
allow_null_glob_expansion:如果设定了,bash允许路径明称为null string。
histchars:history使用。
nolinks:如果设定了,执行指令时,不会跟随symbolic links。
hostname_completion_file, HOSTFILE:包含与/etc/hosts相同格式的档名。
noclobber:如果设定了,Bash不会覆写任何由">;"、">;&"及"<>;"所操作的档案。
auto_resume:请见任务控制一节。
no_exit_on_failed_exec:如果该值存在,非互动的shell不会因为exec失败而跳出。
cdable_vars:如果启动,而cd命令找不到目录,可切换到参数形态指定的目录下。