在 Mac 上设置 PATH 使其在会话之间保持不变

Jes*_*ard 3 macos bash shell terminal environment-variables

我在我的 Mac 上编写了一个 shell 脚本,该脚本在文件夹中运行良好。尝试使其全局可执行我使用了以下脚本:

export PATH="$PATH:~/scripts"

随后,我可以blaster从任何文件夹运行该命令。但是,如果我关闭终端窗口,似乎 PATH 丢失了,我必须再次运行原始命令。知道为什么export PATH需要重新建立吗?

Ini*_*ian 5

不,他们不会

因为您的当前export保留在您运行脚本的当前 shell 中。一旦 shell 终止,导出的变量就会失去它们的作用域。添加一行

echo 'export PATH=$PATH:~/scripts' >> ~/.bashrc 
Run Code Online (Sandbox Code Playgroud)

要使更改永久化,请根据您的登录 shell 在.bashrc/.bash_profile或 中添加该行.profile。这些文件在出现提示之前被读取和获取(在当前 shell 中执行),然后您可以直接调用您的脚本