未设置 GitBash 中的环境变量

Environment variable in GitBash not set

我正在尝试通过一个小 bash 脚本在我的 mingw gitbash (windows7-x64) 中设置环境变量。但是它没有设置,只有我手动执行它。

dev.bash

的内容
schwat@AACarrier MINGW64 ~/Documents/test
$ cat dev.bsh

#!/usr/bin/env sh
export KUBECONFIG="/c/Users/schwat/Documents/test/.kube/dev.kubecfg"
kubectl config set-context dev --cluster=kubernetes --namespace=dev --user=admin
kubectl config use-context dev
echo "Connected to ENV:DEV"

执行了dev.bsh并回显了$KUBECONFIG

schwat@AACarrier MINGW64 ~/Documents/test
$ ./dev.bsh
Context "dev" modified.
Switched to context "dev".
Connected to ENV:DEV


schwat@AACarrier MINGW64 ~/Documents/test
$ echo $KUBECONFIG

手动导出 KUBECONFIG 并回显 $KUBECONFIG

schwat@AACarrier MINGW64 ~/Documents/test
$ export KUBECONFIG="/c/Users/schwat/Documents/test/.kube/dev.kubecfg"


schwat@AACarrier MINGW64 ~/Documents/test
$ echo $KUBECONFIG
/c/Users/schwat/Documents/test/.kube/dev.kubecfg

知道这里出了什么问题吗? (不重复:

我在你的脚本中看到了两个要点:

首先,您在脚本中使用 sh 而不是 bash

#!/usr/bin/env sh

#!/usr/bin/env bash

而我看到的第二点与脚本中导出的理解有关。 当您执行脚本时,会创建一个新进程,因此您创建和导出的变量可用于此新进程和所有可能的 sub-process,而不是父进程,在本例中为 shell你调用你的脚本。

因此,您的变量可能正在创建,但是当脚本完成时它被销毁并且您再也看不到它了。

希望对您有所帮助!