~/.bashrc 没有在新的 lxterminal 窗口中获取

~/.bashrc 没有在新的 lxterminal 窗口中获取

我在 ~/.bashrc 中添加了一些行,例如

export JAVA_HOME=/opt/jdk1.6.0_22

我找到了它:

$ source ~/.bashrc
$ env | grep 'JAVA'
JAVA_HOME=/opt/jdk1.6.0_22

然后我在我的主页上名为 scripts 的文件夹下创建了一个基本的 bash 脚本:

#!/bin/bash

echo 'start'
echo $(env | grep HOME)
echo $(env | grep LOGNAME)
echo $(env | grep JAVA)
echo 'exiting'

sleep 5
exit

现在,如果我直接启动它,我会得到预期的输出

$ cd ~/scripts
$ bash 'myScript.sh'
start
HOME=/home/foo/.config
LOGNAME=foo
JAVA_HOME=/opt/jdk1.6.0_22
exiting

但是我需要使用以下命令以不同的方式调用它,但不幸的是它不能以相同的方式工作:

$ lxterminal --command "bash /home/foo/scripts/myScript.sh"
start
HOME=/home/foo XDG_CONFIG_HOME=/home/foo/.config
LOGNAME=foo

exiting

.bashrc 似乎不是通过这种方式获取的。我也尝试了 .profile,但结果相同。使用上述命令调用时,lxterminal 是否获取了另一个文件?

我需要这个命令的原因是因为我想通过我添加到开始菜单的链接/启动器启动这些我自己的脚本,并且它们必须在 lxterminal 窗口上执行。

答案1

尝试强制bash使用交互模式:

lxterminal --command "bash -i /home/foo/scripts/myScript.sh"

发生这种情况的原因是:

  • ~/.bashrc以交互模式阅读;

  • ~/.bash_profile~/.bash_login~/.profile在登录模式下读取。

调用男子猛击

相关内容