环境变量优先级

点击阅读更多查看文章内容

关于环境变量的优先级问题

问题描述

使用 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中查找。

作者

ShiHaonan

发布于

2025-03-03

更新于

2025-03-13

许可协议

评论