본문 바로가기

Programming

[shell] 쉘 스크립트 test 사용 방법 (/bin/bash)

1. $?

먼저 테스트를 하기 전, 아래 변수를 알 필요가 있다.

echo $?

$? 는 직전 실행한 명령의 종료 상태 값을 보여준다. 
0은 성공이며 0 이외의 숫자는 해당 명령이 실패했음을 의미하며 각 값마다 의미가 있음. (1은 일반 오류)

2. test 사용법

test는 아래와 같이 두 가지 방법으로 사용할 수 있다.

# 1번
test 10 -eq 1
# 2번
[ 10 -eq 1 ]

위의 1번과 2번은 같은 표현이며 2번과 같이 사용할 경우, 양 괄호 옆의 공백은 필수로 넣어줘야 한다.

# 10과 1이 같은지
test 10 -eq 1
echo $?
# 1
[ 10 -eq 10 ]
echo $?
# 0 

# 10이 1보다 작은지
test 10 -lt 1
echo $?
# 1
[ 10 -lt 100 ]
echo $?
# 0

mkdir tmp
# 파일 여부
test -f tmp
echo $?
# 1
# 디렉토리 여부
[ -d tmp ]
echo $?
# 0

위와 같이 파일의 존재나 디렉터리의 구분 등 다양한 연산자를 지원하고 있다.

3. test 활용 예시

#!/bin/bash

if [ -f "$1" ]
then
    echo $1는 파일
else 
    echo 파일이 아닌 경우
fi

if 문에 test를 활용하여 테스트 스크립트 매개변수의 파일 여부를 확인하는 예시이다.

/bin/bash test.sh
파일이 아닌 경우

/bin/bash test.sh hello.txt
hello.txt는 파일
반응형