내 시스템(debian)에 (for)가 설치되어 있는지 확인하고 싶습니다 wireless-config
. iwconfig
그렇지 않은 경우 apt-get
내 bash 스크립트는 다음과 같습니다.
if ! hash wireless-tools 2>/dev/null; then
apt-get install wireless-tools;
else
echo "wireless-tools is installed"
fi
큰 문제: hash wireless-tools
작동하지 않는 것 같습니다. 무선 도구의 설치 여부에 관계없이 아무것도 반환되지 않습니다. 이것을 어떻게 다르게 확인할 수 있나요?
답변1
바이너리를 type
확인하는 것이 좋습니다 . hash
그러나 패키지 상태를 확인하기 위해 특별히 설계된 도구도 있습니다.
if ! dpkg-query -s wireless-tools 1> /dev/null 2>&1 ; then
echo "Package wireless-tools is not currently installed."
else
echo "Package wireless-tools is currently installed."
fi
답변2
를 선호하는 경우 iwconfig
보다 지속 가능한 장기 솔루션(예: 패키지 관리자 또는 배포판을 전환하는 경우)은 실제로 사용하려는 바이너리를 확인하는 것입니다. POSIXly를 사용하여 이 작업을 수행할 수 있습니다 command -v
.
if command -v iwconfig >/dev/null; then
echo 'iwconfig present'
else
echo 'iwconfig absent'
fi
help command
배쉬 에서 :
명령: 명령[-pVv] 명령[arg...]
간단한 명령을 실행하거나 명령에 대한 정보를 표시합니다.
ARGS와 함께 COMMAND를 실행하거나, 셸 함수 조회를 억제하거나, 지정된 COMMAND에 대한 정보를 표시합니다. 같은 이름의 함수가 존재하는 경우 디스크에서 명령을 호출하는 데 사용할 수 있습니다.
옵션:
[...]
- -v는 내장된 "type"과 유사한 명령 설명을 인쇄합니다.