티스토리 뷰

`command -v` 사용하기

command는 뒤따라 들어오는 인자를 실행하는 쉘 명령인데, -v 옵션을 주면 명령을 쉘에서 어떻게 취급하는지 알려준다. 해당하는 명령을 실행할 수 없는 경우 1을 반환한다.

❯ command -v java
/usr/lib/jvm/temurin-21-jdk-amd64/bin/java

❯ command -v k
alias k=kubectl

 

따라서 다음과 같이 if문과 조합하면 필요한 프로그램이 설치되어있는지 여부를 확인할 수 있다.

#!/bin/bash

if ! command -v java &> /dev/null
then
    echo "java could not be found"
    exit 1
fi

 

which와 기능은 비슷한데, 이 글을 보면, which는 운영체제에 따라 프로그램을 찾을 수 없어도 따로 종료 코드를 명시하지 않거나, 커스텀된 경우가 있다고 한다. 따라서 여러 환경에서 사용되는 쉘스크립트라면 POSIX 표준인 command를 사용하는 것이 좋아보인다.

 

 

특정 커맨드의 실행 가능 여부를 확인하기

프로그램 존재 여부가 아닌, 특정 커맨드 실행 가능 여부를 확인해야 하는 경우 아래와 같이 해도 문제가 없을 것 같다.

if ! docker compose version &> /dev/null
then
    echo "\`docker compose\` could not be excuted"
    exit 1
fi

# 또는
docker compose version &> /dev/null
if [ $? -ne 0 ]
then
    echo "\`docker compose\` could not be excuted"
    exit 1
fi
# $?는 직전 실행 명령의 반환 코드이다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함