티스토리 뷰
`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
# $?는 직전 실행 명령의 반환 코드이다.
'컴퓨터 > 이번 주 기술메모' 카테고리의 다른 글
타입스크립트 프로젝트에 Jest 추가하기 (0) | 2024.07.11 |
---|---|
MariaDB 시스템 변수 확인 및 수정 - 커넥션 수, 타임아웃, 제너럴 로그 등 (0) | 2024.06.30 |
인텔리제이에서 Ktor 프로젝트 실행이 안되는 경우 - java.lang.NoClassDefFoundError (0) | 2024.05.28 |