【问题标题】:echo $PATH not reflecting saved pathsecho $PATH 不反映保存的路径
【发布时间】:2021-05-11 01:06:09
【问题描述】:

我已尝试将export PATH="$PATH:/Users/My_Name/desktop/My_Folder" 添加到.bash_profile.bashrc.profile。我执行了命令source ~/.bash_profilesource ~/.bashrcsource ~/.profile 来刷新$PATH,它确实反映了当我执行echo $PATH 时。

但是,当我打开一个新终端并执行echo $PATH 时,它没有改变。

问题是我的系统(macOS Big Sur)在我打开新终端时无法识别更新的$PATH,除非我每次都执行源命令以刷新我的$PATH

就上下文而言,我编辑了所有三个,因为我已经搜索了多个网站以获得建议并且已经用尽了所有选项。

解决方案:我意识到我正在使用zsh。要进行更改,我执行了chsh -s /bin/bash 将我的 shell 更改为 bash。

【问题讨论】:

  • Stack Overflow 用于编程问题。 Shell 脚本是主题,但一般 macOS 使用问题属于 Ask DifferentUnix & LinuxSuper User
  • 您可能使用的是zsh,而不是bash。适当的文件是.zprofile
  • .zprofile 对我来说不是一个文件。我必须创建它然后将我的路径导出到其中吗?
  • 是的,你可以在它不存在的时候创建它。

标签: macos shell path


【解决方案1】:

您需要在 nano 或 pico 等编辑器中打开 .profile 文件,并确保您的命令位于文件底部。另外,请确保像这样关闭引号:

export PATH="$PATH:/Users/My_Name/desktop/My_Folder"

您也可以考虑将新路径放在最前面,如下所示:

export PATH="/Users/My_Name/desktop/My_Folder:$PATH"

我的个人资料文件夹中有一个名为 reBASH 的别名,看起来像这样

alias reBASH='source ~/.bash_profile'

所以当我更改 .bash_profile 时,我只需键入 reBASH,按回车键,它就会被应用到当前会话……这只是您在执行此类操作时可能会考虑的一种便利。

【讨论】:

  • 抱歉,我的帖子有误。我确实关闭了终端上的引号,类似于您列出的第一行代码。我尝试了第二行代码并刷新了它,但它不起作用。我的印象是向 $PATH 添加路径是为了简化终端上的工作,我正在尝试找到一种方法来正确更新我的路径,这样我就不必每次都执行 source 命令。谢谢你的帖子,不胜感激。
  • @breadelicious 终端 shell 中的 PATH 环境变量基本上是这样说的……当您输入命令并按回车键时,shell 将查找命令的 PATH 变量中的每个路径您正在尝试执行,因此您不必 cd 进入该文件夹然后执行您的命令。如果您尝试运行的程序所在的文件夹位于该 PATH 变量中,那么无论您当前位于哪个文件夹中,您都可以运行该程序。希望这有意义...
  • @breadelicious 这是一本好书:medium.com/@jalendport/…
【解决方案2】:

解决方案:我意识到我正在使用zsh。要进行更改,我执行了chsh -s /bin/bash 将我的 shell 更改为 bash。

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多