2

我试图发现一些 virtualenvwrapper 函数定义是如何进入我的 shell 的。(更具体地说,因为它们是旧版本,我想摆脱它们,放入新版本。)

我已经在我的 ~/.bashrc 中寻找了一些东西,我什至已经检查过了

env -i HOME=/tmp bash

没有定义,这是真的,所以我很确定它不是系统 bashrc。

因此,在设置 shell 源时 bash 会提供许多文件,例如:

source .bashrc

source .bash_aliases

等等。但是无论如何让 bash 打印它来源的文件的名称,所以我可以尝试找出这种来源发生在哪里?

4

2 回答 2

2

正在做

set -x

source .bashrc

将跟踪正在执行的命令。

为了source从输出中过滤,说

source .bashrc 2>&1 | grep source
于 2013-08-14T13:35:21.643 回答
2

在调试模式下运行 bash 怎么样?

bash -x

您也可以使用 -l 模拟登录

bash -x -l

这样你就可以检查事情是如何发生的。

另外,看看数组变量BASH_SOURCE是否有帮助。

于 2013-08-14T13:43:29.670 回答