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



我刚开始学习Hadoop(CentOS7),这里有一个关于环境变量的问题:

在我的 VM 中,rxie 是登录用户:HADOOP_CONF_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_CONF_DIR=$HADOOP_HOME/etc/hadoop 是正确的。

我看不出错误HADOOP_CONF_DIR在哪里定义?

如果有人能启发我并提供解决方案,将不胜感激,非常感谢。

运行以下命令:

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的第 193 行设置HISTFILESIZE

工作原理

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

其他方法

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

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

相关内容

  • 没有找到相关文章

最新更新