变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
declare tmp
=
两边不可以输入空格,否则会报错
# 正确的赋值 $ tmp=shiyanlou # 错误的赋值 $ tmp = shiyanlou
使用 echo
命令和 $
符号($ 符号用于表示引用一个变量的值,初学者经常忘记输入)
$ echo $tmp
并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。
命 令 | 说 明 |
---|---|
set |
显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。 |
env |
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。 |
export |
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。 |
PATH=$PATH:/home/shiyanlou/mybin
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} |
从头向后开始匹配,删除符合匹配字串的最短数据 |
${变量名##匹配字串} |
从头向后开始匹配,删除符合匹配字串的最长数据 |
${变量名%匹配字串} |
从尾向前开始匹配,删除符合匹配字串的最短数据 |
${变量名%%匹配字串} |
从尾向前开始匹配,删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} |
将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} |
将符合旧字串的全部字串替换为新的字串 |
$ mypath=$PATH $ echo $mypath $ mypath=${mypath%/home/shiyanlou/mybin} # 或使用通配符,*表示任意多个任意字符 $ mypath=${mypath%*/mybin}
unset mypath
source
命令来让其立即生效
$ cd /home/shiyanlou $ source .zshrc
source别名 .
. ./.zshrc
使用.
的时候,需要注意与表示当前路径的那个点区分开。
注意第一个点后面有一个空格,而且后面的文件必须指定完整的绝对或相对路径名,source 则不需要。