여기[[
문자열과 정수 간의 비교가 허용되는 것을 확인했습니다 .
[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
변수에 count1
string 이 포함되어 있습니다 [1] "0"
. 8자 문자열입니다.아니요정수.
가치가 정당하더라도 "0"
존재의 시험은[[ $count1 -ne $count2 ]]
$count1
"0"
매우 다르다from은 단일 문자열 [[ "$count1" -ne "$count2" ]]
입니다 .$count1
0