프로그래밍 방식으로 새 터미널을 열고 대화형 세션을 위해 다양한 환경 변수를 설정하는 사용자 정의 스크립트를 자동으로 실행하려고 합니다. 결과 터미널을 편집할 수 없다는 점, 즉 커서가 없다는 점을 제외하면 모두 잘 작동합니다. 내 현재 시도는 다음과 같습니다
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
. 대화형 셸 세션에서 일반적으로 발생하는 것처럼 여전히 source 를 원할 경우 코드 ~/.bashrc
에서 수행할 수 있습니다 run_oenv.sh
.
[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"
또는 단락 구문이 없으면
if [ -f "$HOME/.bashrc" ]; then
source "$HOME/.bashrc"
fi
run_oenv.sh
(아마도 파일이 의 모든 변수나 설정을 재정의하도록 하려면 파일 상단에 있을 것입니다 ~/.bashrc
)