셸 변수
변수 선언 및 해제
ubuntu:~$ A=abc ubuntu:~$ echo $A abc ubuntu:~$ unset A ubuntu:~$ echo $A # 아무것도 출력 안됨 (비어있는 줄 출력)
환경 변수 (export)
a.sh
echo $A echo $B
일반 변수들은 다른 셸스크립트를 실행할 때 전달되지 않는다.
ubuntu:~$ A=abc ubuntu:~$ ./a.sh # 아무것도 출력 안됨 (비어있는 줄 출력)
export 한 변수들은 셸이 fork 될 때 전달된다. 다른 셸스크립트 안에서도 읽을 수 있다.
ubuntu:~$ export A=abc ubuntu:~$ export B=def ubuntu:~$ ./a.sh abc def ubuntu:~$ unset A ubuntu:~$ unset B
fork 될 때 전달되는 변수는 export 명령으로 확인할 수 있다.
ubuntu:~$ export declare -x HOME="/home/gdhong" declare -x LANG="en_US.UTF-8" declare -x LC_ALL="en_US.UTF-8" declare -x PWD="/home/gdhong" declare -x SHELL="/bin/bash" declare -x USER="gdhong" ...
(꼼수) 다음과 같이 하면 일반 변수가 쉘스크립트로 전달된다. 단, 이 변수는 다시 활용할 수 없다.
ubuntu:~$ A=ABC B=DEF ./a.sh ABC DEF ubuntu:~$ echo $A # 아무것도 출력 안됨 (비어있는 줄 출력)