从命令行启动 konsole 或 term 时加载不同的 .bashrc

从命令行启动 konsole 或 term 时加载不同的 .bashrc

从命令行启动控制台或术语将加载默认的 .bashrc。但我想加载传递给它的选项的不同配置。到目前为止,我能想到的最好的办法是,我可以在 .bashrc 中定义一个函数,它接受选项,同时保留三个配置文件 .bashrc0、.bashrc1 和 .bashrc2 来替换 .bashrc,具体取决于传递的选项。

#new term function
nterm (){
    if [ "$#" == "1" ]; then
       if [ "$@" == "option_a" ]; then
          yes | cp $HOME/.bashrc1 $HOME/.bashrc
          term
          yes | cp $HOME/.bashrc0 $HOME/.bashrc
       else if [ "$@" == "option_b" ]; then
          yes | cp $HOME/.bashrc2 $HOME/.bashrc
          term
          yes | cp $HOME/.bashrc0 $HOME/.bashrc
       fi
    else 
       term
    fi
}

所以我可以打电话

$nterm option_a

或者

$nterm option_b

启动两个加载不同设置的新终端。与 konsole 相同。

但有没有一个继承方式在 term/console/bash 中执行此操作或更简洁、更明确的替代方案

答案1

我建议使用 bash 的--rcfile参数;它强制交互式 bash shell 使用给定的 RC 文件反而~/.bashrc。将您的功能更改为:

nterm (){
    if [ "$#" == "1" ]; then
       if [ "$@" == "option_a" ]; then
          term -e bash --rcfile "$HOME/.bashrc1"
       else if [ "$@" == "option_b" ]; then
          term -e bash --rcfile "$HOME/.bashrc2"
       fi
    else 
       term
    fi
}

我不熟悉该term命令;我从你的标签中假设它是 gnome-terminal 或其包装器,在这种情况下,我让它使用相应的 RC 文件调用 bash。

相关内容