我认为源自登录 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
.