2013-02-28 93 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。