리눅스 set -u

1 개요[ | ]

리눅스 set -u
  • Treat unset variables as an error when substituting.
  • 설정되지 않은 변수를 사용하려고 하면 스크립트를 종료한다.
이때 오류 메시지는 unbound variable, EXIT CODE는 1

2 실습 1[ | ]

user01@localhost:~$ cat test1.sh 
HELLO="WORLD"
echo [$HELLO]
echo [$LOREM]
echo [$HELLO]
user01@localhost:~$ sh test1.sh
[WORLD]
[]
[WORLD]
→ 선언되지 않은 변수 $LOREM을 사용했지만 끝까지 수행되었다.
user01@localhost:~$ cat test2.sh 
set -u
HELLO="WORLD"
echo [$HELLO]
echo [$LOREM]
echo [$HELLO]
user01@localhost:~$ sh test2.sh
[WORLD]
test2.sh: line 4: LOREM: unbound variable
→ 선언되지 않은 변수 $LOREM을 사용하려고 하자, 오류 메시지와 함께 즉시 종료되었다.

3 실습 2[ | ]

user01@localhost:~$ cat test3.sh 
HELLO="WORLD"
unset HELLO
echo [$HELLO]
echo [$HELLO]
user01@localhost:~$ sh test3.sh 
[]
[]
→ 해제된 변수 $HELLO를 사용했지만 끝까지 수행되었다.
user01@localhost:~$ cat test4.sh 
set -u
HELLO="WORLD"
unset HELLO
echo [$HELLO]
echo [$HELLO]
user01@localhost:~$ sh test4.sh 
test4.sh: line 4: HELLO: unbound variable
→ 해제된 변수 $HELLO를 사용하려고 하자, 오류 메시지와 함께 즉시 종료되었다.

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}