在 Powershell 中调用 WSL 'bash -c' 时会加载哪个配置文件?

Which profile gets loaded when invoking WSL's 'bash -c' in Powershell?

在安装和设置 WSL (Debian) 的活动 Powershell 会话中,运行 bash -c 'whoami' 显示我已通过主机身份验证的 Active Directory 用户。但是,运行 bash -c 'env' 没有显示我在 /home/user/mnt/c/Users/user 配置文件中设置的环境变量。从 Powershell 中执行单个 Bash 命令时使用哪个配置文件(如果有)?


编辑:

我在 /etc/bash.bashrc 找到了默认系统 .bashrc 并向其中添加了想要的 export 语句,但是当 运行 bash -c 'env'.

编辑 2:

将导出添加到 /etc/profile 也没有达到预期的效果。

$ echo $-

将显示一个字符串,用于标识您正在 运行 执行 'echo' 命令的 bash 会话的属性。

在登录 shell 或从登录 shell 启动的交互式子 shell 中,我可以在该字符串中看到字母 "i"。在 bash 会话中,仅针对 运行 命令启动,例如使用 'bash -c',此输出中缺少字母 "i",表明会话不是交互式的。您的 .bashrc 文件(或系统级等效文件)在 bash 非交互式会话中不是 运行。这是来自 RH7 linux 框的示例。我在 mac 运行ning macos.

上看到了同样的差异
~ $ ssh c7a
Last login: Tue Dec 31 07:29:29 2019 from gateway
[builder@c7a ~]$ echo $-
himBH
[builder@c7a ~]$ bash -c 'echo $-'
hBc
[builder@c7a ~]$

所以我相信对于使用 bash -c 的单个命令哪个配置文件是 运行 的问题的答案是 "none".