셸 import

텍스트 파일을 import 하여 실행하는 것과 쉘 스크립트를 fork 하여 실행하는 것의 차이



a.sh
echo $A


쉘 스크립트를 실행

쉘이 자식 프로세스를 생성(fork)하여 스크립트를 실행


실행권한이 없으면 실행되지 않음

ubuntu:~$ chmod 644 a.sh

ubuntu:~$ ./a.sh
./a.sh: Permission denied


실행권한(755)를 주면 실행됨.
export 로 변수를 자식프로세스에 전달하지 않았기 때문에 아무것도 출력되지 않음

alias 후
ubuntu:~$ chmod 755 a.sh

ubuntu:~$ A=abc

ubuntu:~$ ./a.sh
# 아무것도 출력되지 않음 (빈 줄을 출력)


텍스트 파일을 import 하여 실행

셸이 텍스트 파일을 읽어서 현재 프로세스에서 실행
명령줄이 현재 프로세스에서 실행되기 때문에 위와 달리 일반변수가 출력됨

ubuntu:~$ chmod 644 a.sh

ubuntu:~$ A=abc

ubuntu:~$ . ./a.sh
abc