본문 바로가기
e-Logbook

Source 로 리눅스 환경변수 설정

by Thdnice 2008. 9. 1.
반응형



루트를 깔 때

PATH라던ㄱ

Ali_ROOT 등의 디렉토리가 어디인지 미리 알려주는 환경변수 파일이 필요하다

그런데!



일반적으로 루트 설치하는 메뉴얼에서는..

이것을 매번 지정하는 것이 어려운 일이므로

B-shell의 Profile 파일에

환경변수 선언 부분(export Ali_ROOT = "~~~~")등등을

미리 삽입하기를 권장하는데



만약..


여러가지 버전의 Root를 사용하고 싶다!


그러면.. 각각의 폴더에 대해서 환경변수를 선언한 sh(배쉬 스크립트)를 가지고 있다가


각각 버전에 관한 스크립트파일을 실행시키고

root를 실행하면 편할 것이다.


그런데.


여기서 문제가


그 스크립트 파일이

Aliroot42.sh

Alirootpro.sh

라고 각각 되어있을때


이것을 바로 실행시키면


나중에

echo $Ali_ROOT 라고 쳐봐도

Ali_ROOT라는 변수에 들어있는 값이 나오지 않는다


그러니 당연히 root도 실행이 안될것이고.






그러면 왜? 어찌해야 하는가


정답은.

바로


source 로 파일을 실행시키는 것


source aliroot42.sh

이런식으로




이유는 이러하다


bash shell 이 실행되어 있는 상태에서


추가로 sh스크립트 파일을 실행시키면..

그 아래

하위 b-shell이 새로 열려서

거기서 파일들이 실행되고

스크립트가 끝나면 shell이 닫히게 된다.


그러니


하위 shell에서 선언한 변수들은 shell이 닫히면서 end!


즉 환경변수는


상위에서 선언한 것은 하위 쉘에서 사용가능하지만

하위 쉘에서 선언한 변수를 상위 쉘에서 사용은 할 수 없다.


따라서

source 를 사용하여 선언하며

하위 쉘을 열어서 환경변수를 선언하는 것이 아니라.

바로바로 현재 쉘에서 변수를 선언하기 때문에


스크립트파일 사용이 가능하다



또는


source

말고

.

(쩜)

을 사용해도 같은 결과가 나온다.!





반응형

'e-Logbook' 카테고리의 다른 글

리눅스에서 언인스톨 하기.  (0) 2009.02.11
fdisk 사용  (0) 2008.09.25
루트 - 예제1 : 간단한 그래프(분포도)  (0) 2008.08.19
svn 설치, sh실행권한 주기  (0) 2008.08.14
리눅스 - ssh, scp, iptables, stty  (0) 2008.08.05