셸 변수

변수 선언 및 해제

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
# 아무것도 출력 안됨 (비어있는 줄 출력)