개요
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`을 사용해야 합니다. 혼동하면 예상치 못한 결과가 나올 수 있습니다.