2016-04-28 23 views
1

ファイルに書き込むループがありますが、それぞれの0.5の値をファイルに書きたいと思います。 let count+=0.5で試しましたが、何とかうまくいきませんでした。これは可能ですか?0.5とループを増やす

スクリプト:

#!/bin/bash 
COUNTER=50 
count=0 
until [ $COUNTER -lt 20 ]; do 
     echo $count >> value.txt 
     echo COUNTER $COUNTER 
     let COUNTER-=1 
     let count+=0.5 
     sleep 1 
done 
+0

'配列50 -0.5 20' – Cyrus

+0

BashFAQ#22:http://mywiki.wooledge.org/BashFAQ/022 –

+0

...も関連:http://stackoverflow.com/questions/14222250/ Unixシェルスクリプトの浮動小数点演算 –

答えて

4

bashネイティブ浮動小数点演算を行いません。外部ツールを使用する必要があります。 -=もサポートされていません。

until [ "$COUNTER" -lt 20 ]; do 
    printf "%0.1f\n" "$count" 
    echo "COUNTER $COUNTER" 
    count=$(bc <<< "$count + 0.5") 
    COUNTER=$((COUNTER - 1)) 
    sleep 1 
done > value.txt 
+0

私が提案しようとしていることを正確に+1 +1 – dsclose

+0

このエラーが表示されます: './test.sh:line 7:bc <<<" 0 + 0.5 ":構文エラー:オペランドが必要です(エラートークンは "<" 0 + 0.5 "") ' – user3580316

+0

あなたは' bash'を使用していますか? 'count = $((echo" $ count + 0.5 "| bc))'を試してください。 – chepner

関連する問題