쉘 스크립트에서 bc 계산 문제

쉘 스크립트에서 bc 계산 문제

Ubuntu 14.04.1 64비트 LTS에서 쉘 스크립트를 작성하고 있으며 sequence사용 시작을for loop바꾸다바꾸다마디 없는제가 매우 이상하게 행동하고 있고 계산기에 오류가 많이 있습니다 bc. 다음 코드 조각을 실행하여 오류를 재현할 수 있습니다.

#!/bin/bash
S=0.030
F=0.150
N=30
DIFF=`echo $F - $S | bc -l`
dw=`echo $DIFF / $N | bc -l`
is=`echo $S / $dw | bc -l`
if=`echo $F / $dw | bc -l`
for i in `seq $is $if` 
    do
        w=`echo "scale=3; $i * $dw" | bc -l`
done

시퀀스의 시작을 상수로 변경하면 완벽하게 작동하지만 변수인 경우 문제가 발생하고 출력은 다음과 같습니다.

(standard_in) 1: syntax error
...
...
(standard_in) 1: syntax error

이 행동의 이유는 무엇일까요? 나는 여러분의 제안과 의견을 받고 싶습니다.

답변1

,문제는 내 Ubuntu 설치의 소수 구분 기호가 (점) 대신 (쉼표) 로 설정되어 있다는 것입니다 .. 다음 명령으로 변경했습니다.

sudo update-locale LC_NUMERIC="en_GB.UTF-8"

문제가 해결되었습니다.

관련 정보