[Bash/Shell] 실행 bash 와 source 의 차이

2017. 1. 24. 22:05shellscript

- bash 와 source 의 차이를 알아보자.


  1) bash

     - bash를 사용하면 새로운 세션을 실행하는 sub-process를 생성한다.(fork??)

     - ex) bash test.sh


  2) source  혹은 . 

     - 현재 bash process안에 스크립트를 insert 한다. 즉 parent shell 에 영향을 준다.

     - ex) source test.sh


  ※ 아래의 예제를 보면 차이를 알 수 있다.

    - 선언된 변수를 출력하는 스크립트를 작성한다.

hello="world"
echo "hello $hello"
    - 작성한 shell 을 실행하되, hello 변수에 값을 넣고 실제로 변하는지 차이를 확인해보자.
* bash를 사용
$ hello="bbuljj"
$ bash test.sh
hello world
$ echo $hello
hello bbuljj
     * source를 사용
$ hello="bbuljj"
$ source test.sh
hello world
$ echo $hello
hello world

     - 위와 같이 bash를 사용할 경우 해당 스크립트 내부에서는 변수가 변경되지만 parent shell 에는 영향을 주지 않는다.

        반면  source 는 선언된 변수 hello 의 값이 변하는 것으로 보아 parent shell에 영향을 준다.



'shellscript' 카테고리의 다른 글

[Shell] shell argument array  (0) 2016.10.16