内部变量主要是为shell编程提供支持
# $#命令行参数或位置参数的数量
? $?最近执行的一次命令或脚本的出口状态
$ $$shell脚本的进程ID
! $!最近运行后台进程的PID
* $@ 与 $*的区别
@ $@ 与 $*的区别
OLDPWD 用cd到所建目录之前的路径,路径必须是发生过改变才有值
OPTARG getopts 命令已经处理的前一个选项参数
OPTIND getopts 命令已经处理的前一个选项参数的索引
PPID 当前进程的父进程的PID
PWD 当前目录
RANDOM 会产生一个介于0~32767的随机整数
REPLY read命令读入,但是后面不指定参数名时,读入的东西会被赋予变量REPLY
SECONDS 脚本已经运行的时间(秒数)
SHELL 环境变量
COLUMNS 终端窗口的列宽
LINES 终端窗口的行宽
EDITOR 确定命令编辑使用的编辑程序,通常为vim/emacs
FCEDIT 设定fc内置命令使用的编辑器
IFS 字段分割符(默认为空格,制表符和换行符),决定了shell在解析命令行或字符串时怎样确定字段边界
INPUTRC 设定readline启动文字的名字,默认值 为~/.inputrc
HISTFILE 指定命令历史文件,默认~/.bash_history
HISTFILESIZE 历史文件保存的最大命令记录数量,默认500
HISTSIZE 历史缓冲区保存的最大命令记录 数量,默认500
LANG 语言环境
LC_ALL 用于统一LC_*系列变量的值
LC_CTYPE 确定如何处理语言环境的字符集,包括字符的分类,字符大小写转换,及其他字符属性
LC_MESSAGES 采用何种语言输出系统提示信息
LC_NUMBERIC 本地化千分数值的显示形式
MAIL 定义邮箱的路径文件名
MIALCHECK 检测邮件频率,默认60s,若为0,表示不检查
MAILPATH 定义系统是否有新邮件到来的文件名
PATH 命令检索路径及顺序,目录之间加冒号分割符,PATH环境变量由/etc/profile及$HOME/.profile 等初始化。为了安全期间它从不包含当前目录。
PS1 第一级Shell命令提示符,或称主提示符。默认'[\u@\h\W]\$ ' 具体参数见linux中PS1的设置
PS2 第二级shell命令提示符,默认值为">",提示用户继续输入不完整的命令
PS3 第三级命令提示符,默认值"#?",用于设置select循环控制结构使用的菜单选择提示符
PS4 第四级命令提示符,默认值为"+",用于shell脚本的调试。