首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中调用WSL的“bash-c”时,会加载哪个配置文件?

在Powershell中调用WSL的“bash-c”时,会加载哪个配置文件?
EN

Stack Overflow用户
提问于 2019-12-31 19:54:58
回答 1查看 511关注 0票数 1

在使用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也没有想要的效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-31 22:38:19

代码语言:javascript
复制
$ echo $-

将显示一个字符串,该字符串标识运行“echo”命令的bash会话的属性。

在从登录shell启动的登录shell或交互式子shell中,我可以看到该字符串中的字母"i“。在bash会话中,开始运行一个命令,例如使用'bash -c',这个输出中缺少字母"i“,这表明会话不是交互式的。您的.bashrc文件(或系统级别的等价物)不会在不具有交互性的bash会话中运行。下面是一个来自RH7 linux盒的例子。我在运行macos的mac电脑上也看到了同样的不同。

代码语言:javascript
复制
~ $ 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为单个命令运行哪个配置文件的问题,我认为答案是“无”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59548013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档