"konsole -e"를 사용하면 읽기 전용 터미널이 생성됩니다.

"konsole -e"를 사용하면 읽기 전용 터미널이 생성됩니다.

프로그래밍 방식으로 새 터미널을 열고 대화형 세션을 시작하기 위해 다양한 환경 변수를 설정하는 사용자 정의 스크립트를 자동으로 실행하려고 합니다. 결과 터미널을 편집할 수 없다는 점, 즉 커서가 없다는 점을 제외하면 모두 잘 작동합니다. 내 현재 시도는 다음과 같습니다

konsole -hold -e /path/to/bash/script/run_oenv.sh

다음과 같습니다 run_oenv.sh(간단한 테스트용).

echo hello world
export FOO=bar

위 명령을 run_oenv.sh성공적으로 실행하면 새 터미널에 예상되는 디버그 문이 표시되는 것을 볼 수 있지만 새 터미널을 대화형으로 만드는 방법을 모르겠습니다. 내가 무엇을 놓치고 있나요?

궁극적으로 bash 스크립트는 단순히 환경 변수를 설정하는 것 이상의 작업을 수행하지만 이는 가장 간단한 테스트 사례입니다.

이것은 Centos 7/KDE에 있습니다.

답변1

명령을 실행하기 위해 터미널 에뮬레이터와 함께 사용하면 -e명령이 실행됩니다.대신에쉘이 부팅됩니다. 이는 스크립트를 실행한 다음 다른 작업을 수행하지 않음을 의미합니다.

bash파일을 가져오기 위해 대화형 셸을 시작하려면 bash해당 --rcfile명령줄 옵션을 사용하세요.

konsole -hold -e bash --rcfile /path/to/bash/script/run_oenv.sh

참고로 이렇게 하면bash 아니요~/.bashrc파일을 읽으십시오 . ~/.bashrc대화형 셸 세션에서 일반적으로 발생하는 것처럼 여전히 source 를 원할 경우 run_oenv.sh코드에서 이 작업을 수행할 수 있습니다.

[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

또는 단락 구문이 없습니다.

if [ -f "$HOME/.bashrc" ]; then
    source "$HOME/.bashrc"
fi

(아마도 파일 상단에 있어서 run_oenv.sh파일이 그 안에 있는 모든 변수나 설정을 재정의할 수 있습니다 ~/.bashrc)

관련 정보