2010-11-23 39 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