一、环境变量
1.自定义环境变量
export 变量名=value
declare -x 变量名=value
变量名=value; export 变量名
2.环境变量初始化
/etc/profile –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc (系统登录)
~/.bashrc –> /etc/bashrc (远程登录)
二、普通变量
不加引号 : aa=pwd (不含空格,弱引用)
单引号: aa=’pwd’ (强引用)
双引号: aa=”pwd” (弱引用)
反引号: aa=`pwd` (先运行,类似$(pwd))
三、特殊变量
1.特殊位置变量
变量 | 说明 |
---|---|
$0 | 当前脚本文件名,有路径则包含路径 |
$n | 第n个参数,n>9则为${n} |
$# | 参数个数 |
$* | 加双引号为 “$1 $2 $3 … “ |
$@ | 加双引号为 “$1” “$2” “$3” “…” |
2.特殊状态变量
变量 | 说明 |
---|---|
$? | 上一条指令的状态返回值,为0成功,非0失败 |
$$ | 当前脚本PID |
$! | 上一个后台进程的PID |
$_ | 上一条命令或脚本的最后一个参数 |
3.变量子串
表达式 | 说明 |
---|---|
${var} | 返回$var的内容 |
${#var} | 返回$var的长度(按字符),也适用于特殊变量 |
${var:offset} | 返回$var从offset到结尾的子串 |
${var:offset:length} | 返回$var从offset开始length长度的子串 |
${var#word} | 返回从$var开头开始删除最短匹配的word子串 |
${var##word} | 返回从$var开头开始删除最长匹配的word子串 |
${var%word} | 返回从$var结尾开始删除最短匹配的word子串 |
${var%%word} | 返回从$var结尾开始删除最长匹配的word子串 |
${var/pattern/string} | 返回string代替第一个pattern后的子串 |
${var//pattern/string} | 返回string代替所有pattern后的子串 |
4.特殊扩展变量
说明: 表达式中’:’可选,表示为空
表达式 | 说明 |
---|---|
${var:-word} | 变量未定义返回word,否则返回$var |
${var:=word} | 变量未定义返回word且$var=word,否则返回$var |
${var:?word} | 变量未定义将word作标准错误返回,否则返回$var |
${var:+word} | 变量未定义什么也不做,否则返回$var=word |