[완료]source 와 ./ 명령 차이
글쓴이: boardholic / 작성시간: 목, 2007/06/07 - 10:40오전
제가 java관련 프로젝트 빌드를 할려고 하는데요.
ex)
source ads120 <- 이럴때는 ads120에 적용된 path가 제대로 잡히는데요.
./ads120 <- 이렇게 하면 path가 잡히질 않네요.
컴파일 시에도
source build java <- 이렇게 하고나면, 현재 디렉토리가 다른곳으로 바껴져있어요 -_-
그러나 ./build java <- 이렇게 하면 현재 디렉토리 그대로입니다.
무슨 차이인가요?
Forums:
./ads120 이렇게
./ads120
이렇게 실행하면 일반적인 실행 파일을 실행하는 것과 동일한 방식으로 실행합니다.
즉, shell 프로세스가 fork()되고, fork된 다른 프로세스에서 실행 파일을 동작시키는 방식입니다. 실행이 끝나면 프로세스가 사라지고 현재 shell의 프로세스로 돌아오므로 현재 shell에 영향을 미치지 않습니다.
source ads120
하지만 이렇게 실행시키면 현재 shell에서 스크립트 파일을 직접 읽어서 바로 실행을 하게 됩니다. 즉, 현재 shell에 영향을 미치게 되지요.
그러므로 환경 변수나 현재 shell의 환경을 변경할 필요가 있다면 source ads120(또는 . ads120)으로 하는 것이 맞습니다.
* source 명령은 쉘 스크립트에 대해서만 동작합니다.
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
^^
많은 도움 되었습니다.
감사합니다.^^
나에게 있어 한계란 없다.
무한한 꿈을향해 나아간다.
나에게 있어 한계란 없다.
무한한 꿈을향해 나아간다.
Linux와 Cygwin에서의 차이는...?
안녕하세요?
저도 비슷한 궁금증이 있는데요;
저같은 경우는 Cygwin에서는 eminency님이 말씀하신 대로 동작을 하는데 반해
Linux환경에서는 ./ads120 과 source ads120 모두 동일한 동작을 합니다.
즉 Linux 하에서는 ./ads120을 해도 현재 쉘의 환경변수가 잡힙니다.
Linux와 Cygwin의 차이는 무엇인가요?
( 참고로 저는 csh을 사용 합니다. )
아마 셀의 차이일겁니다.
일반적으로 사용하는건 bash입니다
cygwin도 기본적으로는 bash
그런데 csh에선 source나 ./나ㅣ 같은 일 하는가봅니다.
즐린
댓글 달기