2013-02-28 91 views
2

我有一个bash脚本,其中声明了一些函数,并且我喜欢在创建新shell时自动获取它,以便我可以立即使用这些函数。在~/.bashrc中添加source ~/setsetup.sh似乎不起作用。在创建新shell时自动创建源bash脚本

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

+0

你确定你的'.bashrc'源代码吗? – 2013-02-28 01:16:28

+0

尝试使用。而不是来源。例如'。 setsetup.sh' – 2013-02-28 01:17:03

回答

3

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

+0

'source setup.sh'或'之间的任何区别。 setup.sh' – pierrotlefou 2013-02-28 03:32:29

+0

'.'是POSIX标准中命令的名称,它不包含同义词'source'。如果你的shell支持'source',那么两者之间没有区别。 – chepner 2013-02-28 03:37:39

3

有几个文件。相关的可能是你的情况~/.profile。它通常用于发送.bashrc

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

+0

哈哈+1!举手击掌! ;) – L0j1k 2013-02-28 01:17:35

+1

@ L0j1k:同样;) – 0xC0000022L 2013-02-28 01:18:43

+0

你的问题是更好的答案。 :) – L0j1k 2013-02-28 01:20:00

2

你在找什么是~/.profile其中应该执行每次你创建一个新的bash shell。