Variables
변수명은 알파벳, 숫자, _로 구성되며, 숫자는 맨 처음에 올 수 없다. 변수 이름을 대문자로 사용할 때는 환경 변수와 중복되지 않도록 주의해야 하며, 자식 프로세스에서도 생성한 변수를 사용할 때는 export해야 한다.
현재 Shell에 정의된 모든 변수 확인
compgen -A variable
또는 $ 를 입력하고 tab을 입력하여 변수 목록을 확인할 수도 있다.
정의된 변수 삭제
unset -v <VARIABLE_NAME>
# 예시
unset -v num
특징
같은 줄에 여러 변수를 생성할 수 있다.
;로 구분하지 않아도 된다. 단 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>
출력문에 -x 가 포함되어 있어야 export된 변수에 해당한다.
참고 문서
https://mug896.github.io/bash-shell/variables.html