2017-12-18 13 views
0

어떻게 쉘 스크립트에 부동 소수점 값을 전달하고 해당 숫자로 계산할 수 있습니까? bash countDown.sh 1/12 을 시도하지만 올바르게 수행 할 수 없습니다. 스크립트는 분에서 초 인수를 변환 한 후 카운트 다운인수로 리눅스 쉘 스크립팅 부동 소수점

+2

[Minimal, Complete, Verifiable example] (https://stackoverflow.com/help/mcve) –

+0

대부분의 쉘은 부동 소수점 연산을 수행하지 않습니다. 'countDown.sh'는 리터럴 4 문자의 문자열'1/12'을 인자로받습니다. 부동 소수점 산술을하기 위해서는'bc'와 같은 외부 프로그램이 필요합니다. – chepner

+0

우리가 할 수있는 일은 당신의 문제를 추측하는 것입니다. MCVE가 필요합니다. 즉 쉘은 당신이 무엇을 건든 상관 없다. "고릴라", "123", "123.456"은 모두 쉘과 같다. 중요하게 생각하는 스크립트 내에서 인수를 처리하는 방법입니다. 부동 소수점 표현을 매개 변수 확장을 사용하여 실수 부분과 분수 부분으로 쉽게 나눌 수 있으며 'bc','calc' 또는'awk'를 사용하여 부동 소수점 계산을 처리 할 수 ​​있습니다. –

답변

0

나는이 질문을 읽어

: 나는, 내 스크립트에 분의 일부 분수를 통과 초에 그 변환, 0으로 카운트 다운 할
seconds=$(echo "60 * $1" | bc) 
for ((; seconds > 0; seconds --)); do 
    echo $seconds 
    sleep 1 
done 
echo boom