从命令行启动控制台或术语将加载默认的 .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。