구문 오류: "정수 표현식이 필요합니다"

구문 오류: "정수 표현식이 필요합니다"

다음 스크립트를 사용하고 있습니다

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo $temp
if [ temp -gt 0 ]
  then
  echo "inside"
fi

내 출력은 오류 아래에 있습니다.

5
./temp.sh: line 6: [: temp: integer expression expected

답변1

temp를 확장하려면 쉘을 사용해야 합니다 (스크립트를 작성할 때 리터럴 문자열을 정수와 비교 $하려고 합니다 ). 또한 다음과 같이 인용해야 합니다.temp0

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if [ "$temp" -gt 0 ]
then
  echo "inside"
fi

Bash를 사용하는 경우 다음과 같은 Bash 산술 표현식을 사용하는 것이 더 나은 접근 방식입니다.

x=5.44
p=0
temp=$(printf "%.*f\n" $p $x)
echo "$temp"
if ((temp>0)); then
  echo "inside"
fi

산술 표현식 내에서는 확장이 ((…))필요하지 않으며 $인용할 수도 없습니다.

관련 정보