저는 항상 이런 식으로 정수 계산을 합니다.
a=12
b=23
c=$((a-b))
echo $c
그러나 이제 부동 소수점에서는 실패합니다. bc를 사용하여 이 작업을 수행할 수 있다는 내용을 읽었지만 결과를 마지막에 변수에 할당하고 싶습니다.
a=12.7
b=23.33
c=$((a-b)) | bc
echo $c
답변1
c=$( printf '%s - %s\n' "$a" "$b" | bc )
아니면 게으른 사람들을 위해,
c=$( echo "$a - $b" | bc )
또는 게으른 bash
사용자의 경우,
c=$( bc <<<"$a - $b" )
코드의 문제는 다음과 같습니다.
c=$((a-b)) | bc
불가능한. 출력을 생성하는 항목만 (유용하게) 파이프할 수 있으며, 1) 또는 이 부동 소수점 숫자(구문 오류 포함)인 경우 c=$((a-b))
할당이 실패하고 2) 출력이 생성되지 않습니다. 또한 (nothing)의 출력은 전혀 할당의 일부가 아니기 때문에 할당되지 않습니다.$a
$b
bc
c