Bash 문자열과 정수 비교

Bash 문자열과 정수 비교

여기[[문자열과 정수 간의 비교가 허용되는 것을 확인했습니다 .

    [usr1@host dir]$ echo $count1
    [1] "0"

    [usr1@host dir]$ echo $count2
    13188

    [usr1@host dir]$ if [[ $count1 -ne $count2 ]]
    > then
    > echo "NE"
    > fi
    bash: [[: [1] "0": syntax error: operand expected (error token is "[1] "0"")

   #this worked fine at one point
   if [[ $count1 -ne $count2 ]] then
      echo "NE"
   fi
   syntax error near unexpected token 'then'  

   if [[ $count1 -ne $count2 ]];    then
      echo "NE"
   fi
   [[: [1] "0": syntax error: operand expected (error token is "[1] "0"")

구문이 어떻게 작동하는지 매우 혼란스럽습니다. 다양한 시나리오에 어떻게 대응합니까? 값이 어떻게 변경되더라도 구문 오류를 방지하려면 어떻게 해야 합니까? (그래서 지금 오류가 발생하는 것 같습니다.)

답변1

변수에 count1string 이 포함되어 있습니다 [1] "0". 8자 문자열입니다.아니요정수.

가치가 정당하더라도 "0"존재의 시험은[[ $count1 -ne $count2 ]]$count1"0"매우 다르다from은 단일 문자열 [[ "$count1" -ne "$count2" ]]입니다 .$count10

관련 정보