bash 스크립트에 wireless-tools가 설치되어 있는지 확인하십시오.

bash 스크립트에 wireless-tools가 설치되어 있는지 확인하십시오.

내 시스템(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"과 유사한 명령 설명을 인쇄합니다.

관련 정보