셸 명령 의 "integer expression expected"해결 방법

       Shell 스 크 립 트 에서 매개 변 수 를 비교 할 때 '[ $temp -eq "iPhone" ]' 와 같이 문제 와 같은 “ integer expression expected” 오류 가 발생 할 수 있 습 니 다.이것 은 이 몇 개의 매개 변수: -gt ,-lt,-eq 는 모두 숫자 와 변 수 를 비교 하기 때문에 변수 temp 가 문자열 이 라면 상기 오류 가 발생 할 수 있 습 니 다.원문 을 “ [ $temp -eq iPhone ]” 으로 바 꾼 결과 도 마 찬가 지 였 다.
       이 문 제 를 해결 하려 면 비교적 우회 적 인 방법 을 취 할 수 있다. 즉, awk 도구 로 변 수 를 비교 한 다음 에 비교 한 결 과 를 해당 하 는 숫자 량 과 비교 할 수 있다.상술 한 예 를 구체 적 으로 보면 이렇게 처리 할 수 있다.
[ `echo ${TEMP} | awk -v tem="iPhone" '{print($1>tem)? "1":"0"}'` -eq "0" ]

       전체 버 전:
if [ `echo ${VAR} | awk -v tem="iPhone9,2" '{print($1>tem)? "1":"0"}'` -eq "0" ]
then 
     echo iPhone 7 Plus
else
     echo 不可识别的设备
fi

좋은 웹페이지 즐겨찾기