在git bash中设置环境变量

121

当我从Windows GitBash命令行中执行打印操作时:

set $HOME = c

并执行:

echo $HOME

它并没有将其设置为c吗?我该如何更改/设置环境变量的值?

3个回答

150

普通变量通过简单地赋值来设置;请注意,在 = 周围不允许有空格:

HOME=c

环境变量是一种普通变量,已被标记为导出到环境中。

export HOME
HOME=c

您可以将赋值与export语句结合使用。

export HOME=c

那么 OP 的 set 做什么? - adamdport
假设$HOME的值是“正常”的(即未引用扩展结果为单个单词),则将前三个位置参数分别设置为$HOME=c的值。例如,set a b c; echo "$2"将输出b - chepner
1
同样适用于Bash的一般情况。 - charles ross
值得注意的是,这个变量不会成为Windows环境变量。我的意思是,在打开Windows设置->系统->高级系统设置->环境变量时,你既找不到用户变量,也找不到系统变量。
要实现这个目标,请使用setx My_VARIABLE "my value"
- Alex 75

63
如果您想在Git-Bash中永久设置环境变量,有两个选项:
  1. 设置常规的Windows环境变量。Git-bash会在启动时获取所有现有的Windows环境变量。
  2. .bash_profile文件中设置环境变量。
默认情况下,.bash_profile位于用户主目录中,例如:C:\users\userName\git-home\.bash_profile。您可以通过设置HOME Windows环境变量来更改到bash主目录的路径。 .bash_profile文件使用常规的Bash语法和命令。
# Export a variable in .bash_profile
export DIR=c:\dir
# Nix path style works too
export DIR=/c/dir

# And don't forget to add quotes if a variable contains whitespaces
export ANOTHER_DIR="c:\some dir"

阅读更多关于Bash配置文件的信息。


1
你可能没有回答原帖的问题,但你确实帮助了我解决我的问题。我试图在Windows上的Git Bash中覆盖PERL5LIB环境变量,而这让我能够轻松地做到这一点。 - BebopSong
1
你可能想要编辑#1,以明确它是与Windows shell中相同的命令,只是语法不同(setx foo barsetx foo = bar)。我误读了你在那个答案中所说的话,因为你没有提到setx。 - Yodle
由于某些原因,Git Bash 忽略了我的 Windows HOME 环境变量。这意味着它不使用我的 gitconfig,而是在 Git/etc 中使用自己的配置。 - Unknow0059
但是你不能通过这种方法设置HOME或HOMEDRIVE,对吗?因为你已经知道.bash_profile在HOME下面了。 - Vincent

7
在您的主目录中创建一个 .bashrc 文件也可以起到同样的作用。这样,每次安装新版本的 git bash 时,您就不必复制您的 .bash_profile 文件了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接