新Bash会话的多个init文件

时间:2010-11-23 02:17:33

标签: bash scripting shell

我正在写一个脚本,它将执行一个新的bash会话。根据一些逻辑,它找到一个将用于新shell的init脚本。我想知道是否有一种很好的方法来告诉新的bash会话使用找到的初始化脚本进行初始化以及系统初始化脚本。 --init-file选项似乎要求替换文件而不是另外一个。

目前,我有一个凌乱的设置,其中包含一个环境变量,其中包含找到的init脚本的路径,该脚本来自包装器init文件以及系统文件。有可能是exec bash --init-file "/etc/profile;~/.bashrc;${myInit}"吗?

谢谢, 安德鲁

2 个答案:

答案 0 :(得分:4)

这是一个很好的工作机会:

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

答案 1 :(得分:0)

我无法在我的机器上测试这个,但也许您可以将自定义的.bashrc或.bash_profile传递给子shell,使用类似

的内容来获取'init'文件
if [ -f path_to_init ]; then
  . path_to_init_file
fi