变量
- 使用
declare
命令创建一个变量名为tmp的变量
declare tmp
- 也可以不用声明变量,直接创建
tmp=variable
- 读取变量值,使用
echo
和$
($
符号表示引用的一个变量的值)
echo tmp
注意:变量名只能以英文字母,数字,下划线组成,并且首字母不能为数字
环境变量
环境变量的作用域比变量大,简单理解就是当前进程的子进程有效的变量即为环境变量.
temp=variable #创建变量
zsh #创建子shell
echo $temp #值为空,该变量无效
exit #退出
export temp #导出变量为环境变量
zsh
echo $temp #此时有值,变量有效
然而,当关机或关闭当前shell后,环境变量就没了,如何让环境变量永久有效?
按环境变量的生命周期,可以划分为两类:
- 永久 :需要修改配置文件,让变量永久生效
- 临时 :使用
export
命令,关闭shell失效
实现环境变量的永久生效,有两种方式:
- 修改当前用户home目录下的隐藏文件.profile,那么这个环境变量只对当前用户永久生效
- 修改 /etc/profile 文件,nam
添加自定义路径到PATH环境变量
由于PATH里的路径是以:作为分隔符,所以可以以以下方式自定义路径
PATH=$PATH:/home/shiyanlou/mybin
然而上述方式在Sell关闭后,追加的路径也就失效了.
在每个用户home目录下有一个Shell每次启动时会默认执行的脚本,以初始化环境,包括一些用户自定义环境变量.zsh 的配置文件是 .zshrc
,相应 Bash 的配置文件为 .bashrc
,我们一般只修改用户目录下的配置文件.
因此,我们通过以下方式添加内容到.zshrc
中
echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
值得注意的是,>>
将标准输出以追加的方式添加到文件中>
将标准输出以覆盖的方式添加到文件中
变量修改
-
${变量名%匹配字串}
从尾向前开始匹配,删除符合匹配字串的最短数据PATH=${PATH%:*/mybin}
-
${变量名/旧的字串/新的字串}
将符合旧字串的第一个字串替换为新的字串
变量删除
unset temp
让环境变量立即生效
我们在Shell中修改了一个配置脚本文件后,需要重新启动终端才能生效,但是使用source
命令可以让环境变量立即生效
source .zshrc
source
命令的一个别名是.
,因此以上命令可以替换为
. ./.zshrc