리눅스에서 source 명령어의 의미

luke419의 이미지

아래와 같은 글이 있습니다.

-------------------------------------
source name

단, 여기에서 name 는 C shell script 이다. 이 명령어를 사용하면, C Shell 은
name 에 있는 명령들을 읽어서 실행을 할 것이다. 정상적으로 실행하는
것과 다른 점은 subshell 이 생기지 않는다는 것이다.
-------------------------------------

여기서 subshell이 생기지 않는다는 것이 구체적으로 무엇을 의미하는 건지요?

그럼..

danskesb의 이미지

* http://kldp.org/node/101711
* http://kldp.org/node/101796

같은 글을 여러 번 올리지 말아 주세요.
---- 절취선 ----
http://blog.peremen.name

bushi의 이미지

'subshell 이 생기지 않는다' 이상의 구체적인 설명은 불가능합니다.

억지로 풀어제끼면,
'그것을 위해 새로운 shell 이 또 다시 실행되지 않는다'
정도로 길게 쓸 순 있지만,
말의 뜻을 이해하고 나중에 이 글을 다시 보시면,
제가 길게 풀어제낀 설명이 오히려 더 이해하기 어렵고 오해하기는 쉬운 글이라는 생각이 들 겁니다.

[bushi@rose ~]$ echo '#!/bin/sh' > ~/test.sh
[bushi@rose ~]$ echo 'export AAA=aaa' >> ~/test.sh
[bushi@rose ~]$ chmod u+x ~/test.sh
[bushi@rose ~]$ 
[bushi@rose ~]$ AAA=bbb
[bushi@rose ~]$ 
[bushi@rose ~]$ ~/test.sh
[bushi@rose ~]$ echo $AAA
bbb
[bushi@rose ~]$ 
[bushi@rose ~]$ . ~/test.sh
[bushi@rose ~]$ echo $AAA
aaa
[bushi@rose ~]$ 

OTL

luke419의 이미지

peremen님 같은 글을 여러 번 올리는 것이 아니고, 질문을 여러개 했는데 답변이 하나만 되어 있어서 답변이 올려지지 않은 글을 다시 올리는 겁니다.

danskesb의 이미지

원래 글에 답글을 달면 다시 그 글이 올라옵니다. 가입하신 지 얼마 안 되어서 이해하지 못했을 수도 있을 겁니다.

---- 절취선 ----
http://blog.peremen.name