Linux/Shell Script

[Shell Script] Variables - 1

비번변경 2022. 6. 27. 01:13

Variables

변수명은 알파벳, 숫자, _로 구성되며, 숫자는 맨 처음에 올 수 없다. 변수 이름을 대문자로 사용할 때는 환경 변수와 중복되지 않도록 주의해야 하며, 자식 프로세스에서도 생성한 변수를 사용할 때는 export해야 한다.

 

현재 Shell에 정의된 모든 변수 확인

compgen -A variable

compgen -A variable

또는 $ 를 입력하고 tab을 입력하여 변수 목록을 확인할 수도 있다.

변수 목록 확인

 

정의된 변수 삭제

unset -v <VARIABLE_NAME>

# 예시
unset -v num

unset -v

 

 

특징

같은 줄에 여러 변수를 생성할 수 있다.

;로 구분하지 않아도 된다. 단 local, declare, export 명령을 사용하는 경우에는 적용되지 않는다.

foo=100 bar=$foo zoo=$bar
echo $foo $bar $zoo

같은 줄에 여러 변수 생성

 

 

변수명으로 명령과 동일한 이름을 사용할 수 있다.

명령, 함수, alias와 변수는 다른 namespace를 사용하므고 같은 이름을 변수로 사용할 수 있다.

alias grep='grep --color=auto'
grep=$(echo hello)
echo $grep

명령어와 변수명 중복

 

자식 프로세스에서도 변수를 사용할 때는 export 해야 한다.

설정한 변수는 subshell 프로세스에서는 사용할 수 있지만 exec에 의해 생성되는 프로세스에서는 변수를 export해야 사용할 수 있다. 

# 변수 export
export <NAME>
delcare -x <NAME>

# export 취소
export -n <NAME>

# export된 변수 확인
export -p

# export 여부 확인
declare -p <NAME>

declare -p

출력문에 -x 가 포함되어 있어야 export된 변수에 해당한다.

 

 

 

참고 문서

https://mug896.github.io/bash-shell/variables.html

 

 

728x90