본문 바로가기

IT/Unix / Linux

[정보/공통] 쉘 프로그램의 대체 실행방식

명령어나 프로그램 화일이 실행될때, 쉘은 쉘 명령어 실행때와 마찬가지로

디스크상에서 지정한 화일명을 갖는 프로그램 화일을 검색한다.

쉘이 해당 프로그램을 발견하면은, 명령어 라인 처리를 계속하고,

프로그램을 실행하기 위해서 새로운 프로세스를 분기한다.


새로운 프로세스를 분기하지 않고 프로그램을 실행하기 위해서는

.(dot) 와 exec 명령어를 사용한다.


.(dot)


.(dot) 명령어는 쉘 프로그램이 종료된후에도 실행을 계속하기 위해서

현재의 프로세스 일부로써 쉘 프로그램을 실행한다. . 명령을 이용하여

쉘 프로그램을 실행할 경우에는 실행 권한을 필요로 하지 않는다.

그러나 컴파일된 프로그램들은 . 명령을 이용해 실행할 수 없다.


이 명령어의 형식은 ". program" 형식으로 실행한다.


exec


exec 명령어는 쉘의 일부로써 제공되는 몇가지 고유의(Built-in) 쉘 명령어중

하나이다. 프로그램은 쉘에 즉시 유효하기 때문에, 새로운 프로세스는

프로그램을 실행하기 위해 분기되지 않는다.


exec 명령어는 현재의 프로세스를 덮어씌우고, 대치하며 지정한 프로그램을

실행한다. 그러나 이 경우 프로그램이 종료한후 제어가 본래의 쉘에

되돌려지지 않는다. 즉 이는 프로그램 실행을 개시할때 위치하던 쉘은

종료된다는 것을 의미한다. exec 명령어는 프로그램을 실행하기 위해

실행 권한을 필요로하지 않는다.

또한 이 명령은 컴파일된 프로그램도 실행할 수 있다.


이 명령의 사용 형식은 "exec program"의 형식이다.



출처 : http://www.unix.co.kr/