Macos 无法在.profile上设置路径

Macos 无法在.profile上设置路径,macos,zsh,Macos,Zsh,我是MacOSX新手,正在尝试设置路径变量。在我的.profile中,我有以下代码 # .profile echo "hello world" export PATH=/foo:$PATH 当我启动终端时,我得到: Last login: Thu Oct 23 20:35:54 on ttys000 hello world ➜ ~ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 自从我看到回显消息后,文件就被执行了。但是

我是MacOSX新手,正在尝试设置路径变量。在我的.profile中,我有以下代码

# .profile

echo "hello world"

export PATH=/foo:$PATH
当我启动终端时,我得到:

Last login: Thu Oct 23 20:35:54 on ttys000
hello world
➜  ~  echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
自从我看到回显消息后,文件就被执行了。但是,$PATH变量根本不会改变。为什么呢

编辑

我尝试从脚本中回显PATH变量,如下所示:

# .profile

echo "hello world"

export PATH=/foo:$PATH
echo $PATH
这给了我:

Last login: Thu Oct 23 20:53:14 on ttys000
hello world
/foo:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
➜  ~  echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
➜  ~  
我不理解这种行为。在执行.profile脚本时会修改PATH变量,但之后会重置为默认值。这是故意的还是我做错了什么

任何帮助都将不胜感激

编辑:


谢谢你的评论。我可以找到问题的根源:因为我使用的是zsh,所以还有一个.zshrc文件在.profile之后执行

是否在其他地方重新设置路径变量~/.bash_profile等?跑profile这意味着将其源代码放在.profile所在的当前shell中,然后运行echo$PATH并查看PATH的值。确保任何其他配置文件.bash_profile或类似配置文件未将您的PATH变量设置为最终路径回显所看到的其他变量。由于您没有默认的bash提示符,某些其他文件在某个点上正在被源化。无论在哪里设置PS1,都很有可能在那里修改路径。在执行之前,请尝试运行set-x。配置文件,然后检查输出是否有类似的行。某些文件或源文件。我没有~/bash\u配置文件。我已使.profile可执行,并得到相同的结果。脚本运行时,会修改PATH变量,但在脚本结束后,PATH具有旧值。当然,您应该在~/.zshrc文件中设置路径。解决方案非常简单,将export PATH=/foo:$PATH放在~/.zshrc文件的最末端。