未设置 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你调用你的脚本。
因此,您的变量可能正在创建,但是当脚本完成时它被销毁并且您再也看不到它了。
希望对您有所帮助!
我正在尝试通过一个小 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你调用你的脚本。
因此,您的变量可能正在创建,但是当脚本完成时它被销毁并且您再也看不到它了。
希望对您有所帮助!