명령줄에서 konsole 또는 용어를 시작할 때 다른 .bashrc 로드

명령줄에서 konsole 또는 용어를 시작할 때 다른 .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

서로 다른 설정으로 로드된 두 개의 새 터미널을 시작합니다. 콘솔과 동일합니다.

그런데 하나 있나요?상속 방법term/console/bash에서 이를 수행하거나더 깨끗하고 명확한 대안?

답변1

bash --rcfile인수를 사용하는 것이 좋습니다. 그러면 대화형 bash 셸이 지정된 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를 호출합니다.

관련 정보