이제 올바른 출력을 얻었지만 3개 위치로만 확장되지는 않습니다. 이 작업을 수행하는 방법을 아는 사람이 있나요?
function windchill {
to=32
v=10
vel=`echo 'e(l('$v')*0.16)' | bc -l`
w=$(echo "scale=3; $vel" | bc -l)
twc=`echo "35.74 + (0.6215 * $to) - (35.75 * $w) + (0.4275 * $to * $w)" | bc`
echo ''
echo 'Windchill Calculator'
echo 'Outside Air Temperature (F): '"$to"
echo 'Wind Speed: '"$v"
echo 'Wind-Chill (F): '"$twc"
echo ''
exit
}
나는 $tf와 $v를 맞췄는데, $wc가 내 문제였습니다. 계산기를 사용하여 bash 파일에는 없지만 정답을 얻었습니다. 문제는 내 $w가 1.4454 대신 1을 반환한다는 것입니다.
답변1
(이 답변은 원래 질문에 대한 응답으로 작성되었으며 v^0.16
계산이 포함되어 있습니다 bc
.)
에서 운영자 bc
는^
정수지수화이므로 실제로는 v
0.16이 아닌 0의 거듭제곱이 됩니다. 그러나 로그를 사용하여 일반 지수를 계산할 수 있습니다. x^y
대신 을 사용할 수 있습니다 e(y*l(x))
. 그래서 여기서 v^0.16
필요한 것은 e(0.16*l(v))
.
이를 위해서는 표준 수학 라이브러리를 포함 -l
하도록 전환 해야 합니다. 특정 수준의 정밀도를 원하는 경우 스위치를 사용할 때 기본값이 20인 bc
매개변수를 사용해야 합니다 .scale
bc
-l