二、shell-变量

  • 一、环境变量
    • 1.自定义环境变量
    • 2.环境变量初始化
  • 二、普通变量
  • 三、特殊变量
    • 1.特殊位置变量
    • 2.特殊状态变量
    • 3.变量子串
    • 4.特殊扩展变量

一、环境变量

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

你可能感兴趣的:(Linux)