> 환경 및 유틸리티 > test

test: 조건식 평가

test 명령어는 셸 스크립트에서 조건문을 구성할 때 사용됩니다. 파일의 종류를 확인하거나, 문자열 및 숫자 값을 비교하는 등 다양한 조건식을 평가하여 참(0) 또는 거짓(1)을 반환합니다. 이 반환 값은 `if` 문과 같은 제어 구조에서 활용됩니다.

개요

test 명령어는 주어진 표현식을 평가하고, 결과가 참이면 종료 상태 0을, 거짓이면 1을 반환합니다. 이는 주로 셸 스크립트의 `if`, `while` 문 등 조건부 실행에 사용됩니다. `[` 명령어는 `test` 명령어의 다른 형태이며, `[[`는 Bash/Ksh/Zsh에서 확장된 기능을 제공합니다.

주요 기능

  • 파일 유형 및 속성 검사
  • 문자열 값 비교
  • 정수 값 비교
  • 논리 연산 (AND, OR, NOT)

주요 옵션

test 명령어는 다양한 단항 및 이항 연산자를 사용하여 조건식을 평가합니다.

파일 속성 검사

문자열 비교

정수 비교

논리 연산자

생성된 명령어:

명령어를 조합해 보세요.

설명:

`test` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

test 명령어를 활용한 다양한 조건식 평가 예시입니다.

파일 존재 여부 확인

if test -e /etc/passwd; then echo "/etc/passwd 파일이 존재합니다."; fi

`/etc/passwd` 파일이 존재하는지 확인합니다.

디렉토리 여부 확인

if test -d /tmp; then echo "/tmp는 디렉토리입니다."; fi

`/tmp`가 디렉토리인지 확인합니다.

문자열 비교

MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "변수 값은 hello입니다."; fi

변수 `MY_VAR`의 값이 'hello'와 같은지 확인합니다.

정수 비교

COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT는 10보다 큽니다."; fi

변수 `COUNT`의 값이 10보다 큰지 확인합니다.

논리 AND 연산

touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt는 존재하고 비어있지 않습니다."; fi
rm file.txt

`file.txt`가 존재하고 비어있지 않은지 확인합니다.

test 대신 `[` 사용

if [ -f /etc/hosts ]; then echo "/etc/hosts 파일이 있습니다."; fi

`test` 명령어는 `[`로 대체하여 사용할 수 있습니다. 이때 `]`로 닫아주어야 합니다.

팁 & 주의사항

test 명령어를 사용할 때 유용한 팁과 주의할 점입니다.

주요 팁

  • `[` 명령어는 `test` 명령어와 동일하며, 마지막에 `]`를 닫아주어야 합니다. `[`와 `]`는 각각 별도의 인자로 취급되므로 공백이 필수입니다.
  • `[[` 명령어는 Bash, Ksh, Zsh에서만 지원되며, 더 강력한 기능(정규 표현식, 공백 처리 등)을 제공합니다. `[[` 내부에서는 변수를 따옴표로 묶지 않아도 안전합니다.
  • 변수를 사용할 때는 항상 큰따옴표로 묶어주는 것이 안전합니다 (예: `test "$VAR" = "value"`). 이는 변수가 비어있거나 공백을 포함할 때 발생할 수 있는 오류를 방지합니다.
  • 정수 비교 시에는 `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le`를 사용하고, 문자열 비교 시에는 `=`, `!=`, `-z`, `-n`을 사용해야 합니다. 혼동하면 예상치 못한 결과가 나올 수 있습니다.

동일 카테고리 명령어