【问题标题】:source bash script automatically when new shell created创建新 shell 时自动源 bash 脚本
【发布时间】:2023-09-15 21:26:02
【问题描述】:

我有 bash 脚本,其中声明了一些函数,我喜欢在创建新 shell 时自动获取它,以便我可以立即使用这些函数。在~/.bashrc 里加个source ~/setsetup.sh 好像不行。

编辑: ~/.profile 和 ~/.bashrc 都有效。在获取脚本时,我只是有一个愚蠢的错字。谢谢!

【问题讨论】:

  • 您确定您的.bashrc 正在被获取吗?
  • 尝试使用 .而不是来源。例如. setsetup.sh

标签: bash ubuntu


【解决方案1】:

如果您创建的新 shell 是登录 shell,它将执行 .bash_login.bash_profile.profile(无论哪个先找到)中的一个,而不是 .bashrc。通常,如果您使用它们,您可以从两个bash 特定的一个中获取.bashrc。您不应将任何bash 特定的命令放在.profile 中,因为该文件可能会被其他非bash shell 读取。例如,如果您决定从 .profile 获取脚本,则应使用 . setsetup.sh 表单,并确保该脚本中没有特定于 bash 的内容。

【讨论】:

  • source setup.sh. setup.sh 之间的任何区别
  • . 是 POSIX 标准中的命令名称,不包括同义词 source。如果你的shell支持source,那么两者没有区别。
【解决方案2】:

有几个文件。对于您的情况,相关的可能是~/.profile。常用于来源.bashrc

查看man .profile 了解详情。当bash作为登录shell启动时.profile是相关的,否则.bashrc

【讨论】:

  • 哈哈 +1 厄运!击掌! ;)
  • 你的答案更好。 :)
  • ~/.profile 和 ~/.bashrc 都有效。我只是在获取脚本时有一个愚蠢的错字。
【解决方案3】:

您正在寻找的是~/.profile应该在您每次创建新的 bash shell 时执行。

【讨论】: