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