带有 bash --norc --noprofile 的 $PATH 记录在哪里?

带有 bash --norc --noprofile 的 $PATH 记录在哪里?

如果我在干净的环境中运行 bash,我希望 PATH 为空,但是:

odin ~ 210$ env -i bash --norc --noprofile 
bash-4.4$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.
bash-4.4$ uname -a
Linux odin 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
bash-4.4$ 

PATH 不为空。

我已看过几次文档,但也许我错过了一些东西。

我的问题:这个记录在哪里?

谢谢。

-E

答案1

我发现了几个线索man bash

(1)在 PATH 变量的文档中:-

PATH 命令的搜索路径。它是一个以冒号分隔的目录列表,shell 会在这些目录中查找命令(请参阅下面的命令执行)。PATH 值中的零长度(空)目录名称表示当前目录。空目录名称可能显示为两个相邻的冒号,或显示为首冒号或尾冒号。 默认路径与系统相关,由安装 bash 的管理员设置。常见值为“/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin”。

(2)在以下文件中command:-

命令 [-pVv] 命令 [arg ...] 运行命令,使用 args 抑制正常的 shell 函数查找。仅执行内置命令或在 PATH 中找到的命令。 如果给出了 -p 选项,则使用 PATH 的默认值来搜索命令,保证找到所有标准实用程序。 ...

在 Ubuntu 18.04.2 上,我得到了相同的PATH变量。我注意到两件事:-

  1. PATH包括.,但这通常是不明智的。
  2. 在新的bash实例中,declare -p PATH显示PATH未导出,与正常配置一样,因此在其环境列表中env不显示PATH

相关内容