在交互式 shell 中找不到 ~/.bash_profile 中的函数

在交互式 shell 中找不到 ~/.bash_profile 中的函数

我认为源自登录 shell 的 .bash_profile(或 .profile)中的任何内容都可以在交互式 shell 中使用。

我的目标是在登录 shell 或交互式 shell 中提供可用的函数列表。

我使用的是 Ubuntu 14.04.1,并且我不使用 .profile,而是使用 .bash_profile。(.profile 已重命名)

所以目前我所做的,我已将函数插入 .bash_profile 中,但是当打开交互式终端时,只有当我使用 .bash_profile 时,它​​们才不可用bash -l

答案1

中定义的函数.bash_profile仅在读取的 shell 中可用.bash_profile,在子 shell 中不可用。

当您打开终端窗口时,您可能正在打开登录外壳。某些终端程序可能会让您打开登录 shell(例如gnome-terminal位于edit-> profile preferences)。

但是,如果您退出另一个程序(例如:sh从运行vi),那么您将看不到这些函数。

然而,通常情况下,您想要在每个 shell 上设置的函数和内容应该放在.bashrc.

相关内容