Bash 쉘에서 빈 문자열 체크하기
bash 에서 빈 문자열을 확인해야 할 경우가 있다. 시놀로지 나스에서 알림 스크립트를 실행하는데, 전송할 내용이 있는 경우에만 실행되도록 하고싶은 경우 -n
또는 -z
옵션을 사용하여 문자열을 비교한다.
-n 옵션은 스트링이 null 이 아닌지 확인한다. 문자가 없는 경우를 제외하고는 모두 true 를 반환합니다.
VAR="hello"
if [ -n "$VAR" ]; then
echo "VAR is not empty"
fi
비슷하게 -z 옵션은 문자열이 null 인지 확인합니다.
VAR=""
if [ -z "$VAR" ]; then
echo "VAR is empty"
fi
아래와 같이 실행되는 스크립트가 있는 경우, TR_TORRENT_NAME 에 값이 있는 경우에만 실행되도록 변경한다.
curl -d "token=YOUR_TOEKN" --data-urlencode "message=$TR_TORRENT_NAME Download Complete" https://notify.gyubot.com/send
if 문에 -n 옵션을 사용한다.
if [ -n "$TR_TORRENT_NAME" ]
then
curl -d "token=YOUR_TOKEN" --data-urlencode "message=$TR_TORRENT_NAME Download Complete" https://notify.gyubot.com/send
fi
if 문 기본 형식
if [ conditons ]
then
실행하고자 하는 문장
fi
if else 를 사용하는 경우
if [ conditons ]
then
조건만족시 실행하고자 하는 문장
else
조건 불만족시 실행하고자 하는 문장
fi
여러개의 if 를 사용하는 경우 elif
를 사용합니다.
if [ conditons ]
then
조건만족시 실행하고자 하는 문장
elif [ conditons ]
두번째 조건 만족시 실행 문장
else
조건 불만족시 실행하고자 하는 문장
fi
문자열 연산자
[ stringName ] - 문자열이 널(NULL)인지 체크, Null이 아니면 참
[ -n stringName ] - 문자열의 사이즈가 0 이상인지 체크, 0 이상이면 참
[ -z stringName ] - 문자열의 사이즈가 0 인지 체크, 0이면 참
[ stringNameA = stringNameB ] - A문자열과 B문자열이 같은지 체크, 같으면 참
[ stringNameA != stringNameB ] - A문자열과 B문자열이 다른지 체크, 다르면 참
대소관계 연산자
[ intA -ge 100 ] - 숫자 A가 100보다 크거나 같은지 체크, 100 이상이면 참
[ intA -gt 100 ] - 숫자 A가 100보다 큰지 체크, 100이 넘으면 참
[ intA -le 100 ] - 숫자 A가 100보다 작거나 같은지 체크, 100 이하이면 참
[ intA -lt 100 ] - 숫자 A가 100보자 작은지 체크, 100 미만이면 참
파일 연산자
[ -r filename ] - 해당 파일이 읽기 가능한지 체크
[ -w filename ] - 해당 파일이 쓰기 가능한지 체크
[ -x filename ] - 해당 파일이 실행 가능한지 체크
[ -s filename ] - 해당 파일의 사이즈가 제로 이상인지 체크
[ -d filename ] - 해당 파일이 디렉토리 파일인지 체크
[ -f filename ] - 해당 파일이 보통 파일인지 체크
[ -h filename ] - 해당 파일이 링크 파일인지 체크
조건문 결합 연산자
[ 조건문A -a 조건문B ] - 조건문 A와 B가 모두 참인지 체크, -a는 AND
[ 조건문A -o 조건문B ] - 조건문 A와 B중 참이 하나라도 있는지 체크, -o는 OR
출처
- http://timmurphy.org/2010/05/19/checking-for-empty-string-in-bash/
- http://forum.falinux.com/zbxe/index.php?document_srl=564097&mid=lecture_tip
'Programming > Linux' 카테고리의 다른 글
[linux] 공백 포함 파일 이동 (0) | 2017.03.13 |
---|---|
Unix/Linux Command df & du (0) | 2016.01.12 |
uname 사용법 (0) | 2014.11.10 |
Wubi 설치 (0) | 2012.03.07 |
useradd / groupadd (0) | 2009.11.16 |
댓글