Linux의 Bash 쉘 스크립트에서 변수가 정의되어있는지 확인하는 방법을 소개합니다.
예를 들어, 어떤 변수에 접근할 때, 그 변수가 정의되지 않아서 ""
가 출력되는 것인지, 실제 값이 ""
로 할당된 것인지 구분이 안될 수 있는데요.
이럴 때 변수가 정의되었는지 확인하여 알 수 있습니다.
1. Syntax
변수가 정의되어있는지 확인하는 테스트 연산자는 -v
와 -z
입니다.
[[ -v Variable_Name ]]
[[ -z Variable_Name ]]
-v
: 변수가 정의되어있을 때 True, 그렇지 않으면 False 리턴-z
: 변수가 정의되어있을 때 False, 그렇지 않으면 True 리턴
2. '-v'로 변수 정의 확인
다음과 같이 -v
연산자로 변수가 정의되어있는지 확인할 수 있습니다.
#!/bin/bash
VAR="variable"
if [[ -v VAR ]];
then
echo "VAR is set"
else
echo "VAR is not set"
fi
if [[ -v VAR2 ]];
then
echo "VAR2 is set"
else
echo "VAR2 is not set"
fi
Output:
$ bash example.sh
VAR is set
VAR2 is not set
3. '-z'로 변수 정의 확인
다음과 같이 -z
로 변수가 정의되어있는지 확인할 수 있습니다. 파일이 존재할 때, -v
와 리턴 값이 반대라는 것에 주의를 하시면 됩니다.
#!/bin/bash
VAR="variable"
if [[ -z ${VAR} ]];
then
echo "VAR is not set"
else
echo "VAR is set"
fi
if [[ -z ${VAR2} ]];
then
echo "VAR2 not is set"
else
echo "VAR2 is set"
fi
Output:
$ bash example.sh
VAR is set
VAR2 is not set
4. unset으로 변수 정의가 제거되는 것 확인
unset은 선언된 변수를 제거하는 명령어입니다.
예를 들어, 아래 예제에서 VAR는 정의되었고 -v
로 체크해보면 설정되었다고 나옵니다. 그 변수에 대해서 unset을 하고 다시 체크해보면 VAR는 정의되지 않았다고 리턴됩니다.
#!/bin/bash
VAR="variable"
if [[ -v VAR ]];
then
echo "VAR is set"
else
echo "VAR is not set"
fi
unset VAR
if [[ -v VAR ]];
then
echo "VAR is set"
else
echo "VAR is not set"
fi
Output:
$ bash example.sh
VAR is set
VAR is not set
5. References
Loading script...
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)