我有3个配置文件:.bashrc
sources.bashrc_common
和.profile
sources .bashrc
。不幸的是,在登录 Gnome 时,我收到一条错误消息,指出未找到in.bashrc
命令。foo
但如果foo
是在 来源的文件中定义的.bashrc
,为什么找不到它呢?
# .profile
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
# .bashrc_common
function foo {
echo "foo $1"
}
# .bashrc
source $HOME/.bashrc_common
#.....
foo "hello"
请注意,这foo
在我的终端 bash shell 中随处可用,只是 Ubuntu 登录引发了错误。
答案1
我从 .bashrc 获取的文件有一个显式的保护,阻止它在非交互调用时运行。这个故事的寓意是——如果您遇到 Gnome 启动的配置文件问题,请仔细检查它们是否没有任何明确的“仅在交互式 shell 中运行”检查。
答案2
我认为您的 GNOME 运行的是登录 shell,而不是交互式非登录 shell,原因是您的bashrc没有来源。
只需附加到末尾即可bash_登录下列 :
source ~/.bashrc