반응형
RHEL 7.9에서 java 자동 설치 shell을 만들던 중 java build path 지정을 위해. bash_profile에 java의 path를 추가 한 뒤 프로파일 적용 명령어인 source를 실행했는데 적용되지 않았습니다.
다음은 제가 만들었던 shell 코드입니다.
echo "" >> $HOME/.bash_profile
echo "export JAVA_HOME=/PrintChaserServer/jdk" >> $HOME/.bash_profile
echo "export JRE_HOME=/PrintChaserServer/jdk/jre" >> $HOME/.bash_profile
echo "export PATH=$PATH:/PrintChaserServer/jdk/bin:/PrintChaserServer/jdk/jre/bin" >> $HOME/.bash_profile
echo "export CLASSPATH=$CLASSPATH:/PrintChaserServer/jdk/lib/tools.jar" >> $HOME/.bash_profile
echo "" >> $HOME/.bash_profile
source $HOME/.bash_profile
원인
- shell script file 실행 시 실행의 주체가 되는 shell process가 새로운 sub shell process를 생성하여 sub shell 내에서 실행함
- sub shell은 부모쉘과 독립된 메모리를 사용하기 때문에 이 때 등록한 환경변수를 script를 모두 실행하고 부모쉘로 돌아갔을 때 사용할 수 없음
해결방법
- source 명령어를 사용하여 스크립트 파일을 실행
주의사항
- 현재의 shell에서 실행되기 때문에 script 내에 exit 명령어가 동작하면 세션이 종료됨 (창 닫힘)
- cd(경로이동)을 했다면 마지막 이동한 경로에서 종료되기 때문에 시작 경로로 다시 이동한 후 종료해야 함
[참고 사이트]
https://kimyhcj.tistory.com/432
728x90
반응형
'OS > Linux' 카테고리의 다른 글
CentOS 7 / Redhat 7 repository 등록하는방법 (0) | 2023.06.15 |
---|---|
[bash] 쉘 스크립트 디렉토리 or 파일 존재 여부 확인하는 법 (0) | 2023.06.15 |
CentOS - Could not resolve host error 해결 방법 (0) | 2022.02.27 |
centos(linux) 네트워크 프린터로 출력 (0) | 2021.11.26 |
[yum error] Another app is currently holding the yum lock; waiting for it to exit (0) | 2021.09.23 |