다음 스크립트를 사용하고 있습니다
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를 확장하려면 쉘을 사용해야 합니다 (스크립트를 작성할 때 리터럴 문자열을 정수와 비교 $
하려고 합니다 ). 또한 다음과 같이 인용해야 합니다.temp
0
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
산술 표현식 내에서는 확장이 ((…))
필요하지 않으며 $
인용할 수도 없습니다.