빈 문자열을 변수에 할당 한 다음 즉시 다른 변수 문자열을 할당하면 이점이 없습니다. 쉘 변수에 값을 할당하면 이전 값을 완전히 덮어 씁니다.
내 지식에는 변수를 빈 문자열로 명시 적으로 초기화해야한다는 권장 사항이 없습니다. 실제로 그렇게하면 일부 상황에서 오류가 가려 질 수 있습니다 (에서 실행되는 경우 명백한 오류는 set -u
아래 참조).
스크립트 시작 이후 사용되지 않거나 unset
명령을 실행하여 명시 적으로 설정 해제 된 설정 해제 변수 는 값이 없습니다. 그러한 변수의 가치는 아무것도 아닙니다. 로 사용 "$myvariable"
하면에 해당하는 값을 얻게되며 ""
"쓰레기 데이터"를 얻지 못할 것입니다.
쉘 옵션 nounset
이 set -o nounset
또는 로 설정되어 set -u
있으면 설정되지 않은 변수를 참조하면 쉘에서 오류가 발생하고 대화식이 아닌 쉘이 종료됩니다.
$ set -u
$ echo "$myvariable"
/bin/sh: myvariable: parameter not set
또는 bash
:
$ set -u
$ echo "$myvariable"
bash: myvariable: unbound variable
변수 이름이 기존 환경 변수에 해당하는 경우 환경에서 셸 변수가 초기화됩니다.
이런 식으로 환경에 의해 초기화 될 수있는 변수를 사용하고 (원치 않는 경우) 스크립트의 주요 부분 전에 명시 적으로 설정 해제 할 수 있습니다.
unset myvariable # unset so that it doesn't inherit a value from the environment
환경 변수로 제거하거나 초기 값을 무시하고 할당으로 덮어 씁니다 (환경 변수도 값을 변경하게 함).
셸 변수에서 초기화되지 않은 가비지가 발생하지 않습니다 (설명한 바와 같이 가비지가 동일한 이름으로 환경 변수에 이미 존재하지 않는 한).