环境变量优先级
点击阅读更多查看文章内容
关于环境变量的优先级问题
问题描述
使用 curl.exe -LO "https://dl.k8s.io/release/v1.18.0/bin/windows/amd64/kubectl.exe" 安装1.18.0版本的kubectl
将安装路径添加到环境变量的用户变量path中
在命令行查看版本信息却一直是1.30.5
问题原因
使用where kubectl发现环境变量中有两个kubectl.exe,其中一个是之前安装的docker目录下kubectl,而且这个docker的目录优先级在k8s之上,这样在执行kubectl命令时就会优先执行docker中的命令
解决方法
将k8s的路径添加到系统变量的path中,并将其启动到docker路径之前
重启命令行,此时查看环境变量中的kubectl就会发现k8s的优先级更高
查看版本就是1.18.0
环境变量优先级详解
普通变量
针对用户变量和系统变量中重名的变量,用户变量的优先级是大于系统变量的
这里我们在用户变量和系统变量中都定义了一个test变量
随后我们在命令行中打印test变量输出的是用户变量的值
PATH变量
windows对于Path变量的处理方式是,将用户变量的Path添加到系统变量Path后面。windows在查找某一指令的时候,是按Path中的路径从前往后找,直至在某个路径中找到了该指令,所以说,如果系统变量Path中有对应指令的话,windows就不会再去用户变量Path中查找。

