shell的四种变量: 本地变量,环境变量,两种特殊变量(只读变量)
一、本地变量
设置本地变量:
variable-name = value ${variable-name=value}
注:等号两边应该有空格
variable-name=value | 设置实际值到variable-name |
variable-name+value | 如果设置了,则重设其值 |
variable-name:?value | 如果未设置,则显示未定义错误 |
variable-name?value | 如果未设置,显示系统错误 |
variable-name:=value | 如果未设置,设置其值 |
variable-name:-value | 取值并不设置到variable-name,可以被替换 |
清除变量:
unset variable-name
显示所有本地shell变量
set
测试变量是否已经设置
$(variable:-value)
设置只读变量:
variable-name=value
readonly variable-name
查看所有只读变量
readonly
二、环境变量:环境变量用于所有进程
设置环境变量
variable-name=value;exportvariable-name
或者
variable-name=value
export variable-name
清除环境变量
unset MYAPPS
嵌入shell变量
CDPATH | 如果设置了CDPATH,cd一个目录的时候就会先查找CDPATH CDPATH=:/home/leo/bin:/usr/local/; export CDPATH |
EXINIT | 保存使用vi编译器时的初始化选项 EXINIT=`set nu tab=10`; export EXINIT |
HOME |
|
IFS | 用作shell指定的缺省域分隔符export IFS=: |
LOGNAME | 保存登录名 |
| 保存邮箱路径名 缺省为/var/spool/mail/<login name> |
MAILCHECK | 缺省每60s检查新邮件 |
MAILPATH |
|
PATH |
|
PS1 | 基本提示符,缺省为# |
PS2 | 附属提示符,缺省为> |
SHELL | 缺省保存shell,通常在/etc/passwd中已设置 |
TERMINFO | 终端初始化变量保存终端配置文件的位置 |
TERM | 保存变量终端类型 |
TZ | 保存时区值 |
其他环境变量:
EDITOR,PWD,PAGER,MANPATH,LPDEST或PRINTER
将变量导出到子进程:EXPORT
两个特殊变量:位置变量和特定变量参数
三、位置变量
只能是前9个:$0~$9
返回脚本名:`basename $0`
四、特定变量参数:
$# | 传递参数个数 |
$* | 用单字符串显示所有向脚本传递的参数 |
$$ | 运行脚本的进程ID号 |
$! | 后台运行的最优一个进程ID号 |
$@ | 使用时加引号,并在引号中返回每个参数 |
$- | 显示shell使用的当前选项 |
$? | 显示最后命令的退出状态 |