리눅스 Bash shell script에서 [ 와 [[ 의 차이점
리눅스의 Bash Shell Script에서 [ 와 [[ 의 차이점에 대해 알아봅니다.
인프라코디

리눅스의 Bash Shell Script에서 [
와 [[
의 차이점에 대해 알아봅니다.
[ 와 [[ 의 차이점
[
는 sh 기반의 명령어로, 테스트나 조건식을 평가할 때 사용합니다.[
는 실제로/usr/bin/[
라는 실행 파일이며, if나 while 등의 제어문과 함께 사용됩니다.[
를 사용할 때는 공백과 따옴표에 주의해야 합니다. 예를 들어,[ $a = $b ]
는 에러가 발생하지만,[ "$a" = "$b" ]
는 정상적으로 작동합니다.[[
는 bash 기반의 키워드로,[
보다 확장된 기능을 제공합니다.[[
는 실행 파일이 아니라 쉘의 구성 요소이므로, 공백과 따옴표에 덜 민감합니다. 예를 들어,[[ $a = $b ]]
는 정상적으로 작동합니다.[[
는 &&, || 등의 논리 연산자를 사용할 수 있으며, 패턴 매칭이나 정규식을 지원합니다. 예를 들어,[[ str= [0−9]+ ]]
는$str
이 숫자로만 이루어져 있는지 검사합니다.
[ 와 [[ 의 사용 예제
다음은 [
와 [[
를 이용하여 문자열이 비어있는지 검사하는 쉘 스크립트입니다.
#!/bin/bash
str="Hello World"
# [를 사용하는 경우
if [ -z "$str" ]; then
echo "str is empty"
else
echo "str is not empty"
fi
# [[를 사용하는 경우
if [[ -z $str ]]; then
echo "str is empty"
else
echo "str is not empty"
fi

str is not empty
str is not empty
마무리
[
와 [[
모두 -z
옵션을 사용하여 문자열의 길이가 0인지 검사할 수 있습니다. 하지만 [
를 사용할 때는 변수에 따옴표를 붙여야 하고, 공백도 잘 지켜야 합니다. [[
를 사용할 때는 따옴표와 공백을 신경쓰지 않아도 됩니다.
인프라코디
서버, 네트워크, 보안 등 IT 인프라 관리를 하는 시스템 엔지니어로 일하고 있으며, IT 기술 정보 및 일상 정보를 기록하는 블로그를 운영하고 있습니다. 글을 복사하거나 공유 시 게시하신 글에 출처를 남겨주세요.
- 블로그 : www.infracody.com
이 글이 유익했나요? 댓글로 소중한 의견을 남겨주시거나 커피 한 잔의 선물은 큰 힘이 됩니다.
- 블로그 : www.infracody.com
이 글이 유익했나요? 댓글로 소중한 의견을 남겨주시거나 커피 한 잔의 선물은 큰 힘이 됩니다.
댓글