2010-11-23 31 views
2

我正在編寫一個腳本,它將執行一個新的bash會話。基於某種邏輯,它會找到一個將用於新shell的init腳本。我想知道是否有一個很好的方法來告訴新的bash會話使用找到的初始化腳本來初始化以及系統初始化腳本。 --init文件選項似乎要求替換文件而不是附加文件。新的Bash會話的多個初始化文件

目前,我有一個混亂的設置與一個環境變量包含找到的init腳本的路徑,它在包裝init文件中以及系統文件。有點像
exec bash --init-file "/etc/profile;~/.bashrc;${myInit}"可能嗎?

感謝, 安德魯

+0

我不相信我有足夠的「點」上withoutasound的回答發表評論,所以我會在這裏做。我認爲你的建議與我現在正在使用的「wrapper init」文件類似。我希望能夠做的是收集我知道在開始時需要的所有文件。 – ajwood 2010-11-23 02:36:00

回答

3

這代表工作的一個很好的機會:

exec bash --init-file <(cat /etc/profile ~/.bashrc "${myInit}") 
0

我不能對此進行測試我的機器上,但也許你可以通過自定義的.bashrc或者.bash_profile中你的子shell,採購的「init」的文件,像

if [ -f path_to_init ]; then 
    . path_to_init_file 
fi