在使用WSL安装和安装(Debian)的活动Powershell会话中,运行bash -c 'whoami'显示active用户,我是通过主机身份验证的。但是,运行bash -c 'env'并没有显示我在/home/user和/mnt/c/Users/user配置文件中设置的环境变量。在Powershell中执行单个Bash命令时,将使用哪个配置文件(如果有的话)?
编辑:
我找到了默认的系统.bashrc at /etc/bash.bashrc,并在其中添加了想要的export语句,但是它们在运行bash -c 'env'时仍然没有显示出来。
编辑2:
将导出添加到/etc/profile也没有想要的效果。
发布于 2019-12-31 22:38:19
$ echo $-将显示一个字符串,该字符串标识运行“echo”命令的bash会话的属性。
在从登录shell启动的登录shell或交互式子shell中,我可以看到该字符串中的字母"i“。在bash会话中,开始运行一个命令,例如使用'bash -c',这个输出中缺少字母"i“,这表明会话不是交互式的。您的.bashrc文件(或系统级别的等价物)不会在不具有交互性的bash会话中运行。下面是一个来自RH7 linux盒的例子。我在运行macos的mac电脑上也看到了同样的不同。
~ $ 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为单个命令运行哪个配置文件的问题,我认为答案是“无”。
https://stackoverflow.com/questions/59548013
复制相似问题