变量

  • 使用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