首先路径是如何加载进来的

首先路径是如何加载进来的

shell 首先如何bash获取路径和/或环境?它是一个文件吗?

这是我尝试过的:

  • /etc/paths(显然存在于 MacOS 上,在我的 Debian 系统上找不到)

  • 简单地加载$path(对我正在做的事情来说有点作弊,但如果它存在的话,它是一个选项)

  • Google fu(仅提取有关如何通过 shell 正常修改和设置路径的结果)

答案1

通常$PATH是从环境继承的,shell启动脚本可能会修改它。

但如果未设置环境变量,它显然有一个硬编码的默认值,这取决于版本(或者可能是编译时设置的配置选项)。

在我运行的 OS X 系统上bash 3.2.57(1)-release

$ env -i bash --norc --noprofile -c 'echo $PATH'
/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.

在 Debian 上运行bash 4.2.37(1)-release

$ env -i bash --norc --noprofile -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

您可以使用以下命令确认这些已硬编码到二进制文件中

strings /bin/bash | grep /usr/local/bin

相关内容