shell 脚本学习之内部变量
一,$BASH
Bash的二进制程序文件的路径
二,$BASH_ENV
这个环境变量会指向一个Bash的启动文件, 当一个脚本被调用的时候, 这个启动文件将会被读取.
三,$BASH_SUBSHELL
这个变量用来提示子shell的层次
四, $BASH_VERSINFO[n]
这是一个含有6个元素的数组, 它包含了所安装的Bash的版本信息
# BASH_VERSINFO[0] = 3 # 主版本号. # BASH_VERSINFO[1] = 00 # 次版本号. # BASH_VERSINFO[2] = 14 # 补丁次数. # BASH_VERSINFO[3] = 1 # 编译版本. # BASH_VERSINFO[4] = release # 发行状态. # BASH_VERSINFO[5] = i386-redhat-linux-gnu # 结构体系
五,$BASH_VERSION
安装在系统上的bash版本号
六,$DIRSTACK
在目录栈中最顶端的值.
七,$EDITOR
脚本所调用的默认编辑器, 通常情况下是vi或者是emacs.
八,$EUID
"有效"用户ID
九,$FUNCNAME
当前函数的名字
十,$GLOBIGNORE
-
一个文件名的模式匹配列表, 如果在通配(globbing)中匹配到的文件包含有这个列表中的某个文件, 那么这个文件将被从匹配到的结果中去掉.
- 十一,
$GROUPS
- 这是一个当前用户的组id列表(数组), 与记录在/etc/passwd文件中的内容一样.
- 十二,
$HOME
- 用户的家目录
- 十三,
$HOSTNAME
十四, $HOSTTYPE
主机类型
十五,$IFS
域分割
十六, $IGNOREEOF
忽略EOF: 告诉shell在log out之前要忽略多少文件结束符(control-D).
十七, $LC_COLLATE
常在.bashrc或/etc/profile中设置, 这个变量用来控制文件名扩展和模式匹配的展开顺序
- 十八,
$LINENO
- 这个变量用来记录自身在脚本中所在的行号.调试的时候用
- 十九,
$MACHTYPE
- 机器类型
二十,$OLDPWD
之前的工作目录
二十一,$OSTYPE
操作系统类型
二十二,$PATH
可执行文件的操作路劲,,及环境变量
二十三,$PIPESTATUS
这个数组变量将保存最后一个运行的前台管道的退出状态码 相当于echo $?
二十四,$PPID
进程的$PPID
就是这个进程的父进程的进程ID(pid
)
二十五,$PROMPT_COMMAND
这个变量保存了在主提示符$PS1
显示之前需要执行的命令
二十六,$PS1
这是主提示符,
二十七,$PS2
第二提示符, 当你需要额外输入的时候, 你就会看到它. 默认显示">".
二十八,$PS3
第三提示符, 它在一个select循环中显示
二十九,$PS4
-
第四提示符, 当你使用-x选项来调用脚本时, 这个提示符会出现在每行输出的开头. 默认显示"+".
三十,$PWD
工作目录(你当前所在的目录)
三十一,$REPLY
当没有参数变量提供给read命令的时候, 这个变量会作为默认变量提供给read命令
三十二,$SECONDS
这个脚本已经运行的时间(以秒为单位).
三十三, $SHELLOPTS
shell中已经激活的选项的列表, 这是一个只读变量.
三十四,$SHLVL
Shell级别, 就是Bash被嵌套的深度. 如果是在命令行中, 那么$SHLVL为1, 如果在脚本中那么$SHLVL为2
三十五,$TMOUT
如果$TMOUT环境变量被设置为非零值time的话, 那么经过time秒后, shell提示符将会超时. 这将会导致登出(logout).
三十六,$UID
用户ID号