如何在linux中找到环境变量的定义位置

w80xi6nr  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(432)

我刚开始学习hadoop(centos7),这里有一个关于环境变量的问题:
在我的vm中,rxie是登录的用户:hadoop\u conf\u dir=/opt/hadoop/hadoop-2.7.2/etc/rxie
没有路径/opt/hadoop/hadoop-2.7.2/etc/rxie它应该是/opt/hadoop/hadoop-2.7.2/etc/hadoop
我试图找出变量的定义位置,以便更正它。我想到的是:

bash-4.2# grep -r HADOOP_CONF_DIR ~/.*
/root/./.bashrc:export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

请注意hadoop\u conf\u dir=$hadoop\u home/etc/hadoop是正确的。
我不知道错误的hadoop\u conf\u dir是在哪里定义的?
如果有人能给我启发并提供解决方案,我们将不胜感激,非常感谢。

u91tlkcl

u91tlkcl1#

运行以下命令:

PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic "" 7>trace.out

完成后,运行:

grep HADOOP_CONF_DIR trace.out

每次 HADOOP_CONF_DIR 已设置,设置它的文件,以及该文件中的行号。

示例

让我们举一个例子,我的生活中有一些东西 .bashrc 文件:

$ grep HISTFILESIZE trace.out
++ /home/john1024/.bashrc:193:export HISTFILESIZE=20000

这表明它是 ~/.bashrc 那一套 HISTFILESIZE .

工作原理

此命令启动 bash 打开诊断的登录shell。这个 PS4 变量设置诊断输出的前缀,使其包含文件名和行号。有关详细信息,请参阅此处。

其他方法

虽然不太可靠,但也可以尝试:

grep HADOOP_CONF_DIR ~/.bashrc ~/.bash_profile ~/.profile /etc/profile.d/* /etc/profile /etc/bashrc

相关问题