1

私はどういうわけかこれを機能させることはできません、

(( chunks = $size / $chunk_size + 1 ))
echo $chunks

編集


私も試しました、

chunks = $(( $size / $chunk_size + 1 ))

これは機能しますが、

while [ $counter -le 10 ]; do
    echo $counter;
    (( counter++ ))
done

前者は私/ 157286400 + 1 ")syntax error: invalid arithmetic operator (error token is "に与え、エラー自体はうまくフォーマットされていません。

4

3 に答える 3

2

変数$sizeが初期化されていないか、他の数字以外の文字が含まれています。

$ chunk_size=157286400
$ unset size
$ (( chunks = $size / $chunk_size + 1 ))
-bash: ((: chunks =  / 157286400 + 1 : syntax error: operand expected (error token is "/ 157286400 + 1 ")
$ size=$'\r'  # carriage return
$ (( chunks = $size / $chunk_size + 1 ))
 / 157286400 + 1 ")syntax error: operand expected (error token is "

AWKコマンドを次のように変更することで、キャリッジリターンを削除できます。

awk '/^Content-Length:/ { gsub("\015", "", $2); print $2 }'
于 2012-05-03T11:16:55.503 に答える
0

これを試して:

let size=10
let chunk_size =2
declare -i chunks
let chunks =  $(($size / $($chunk_size + 1))))
echo $chunks
于 2012-05-03T11:04:27.330 に答える
0

$sizeと$chunk_sizeが初期化されていることを確認してください...テスト済み:

size=1
chunk_size=2
(( chunks = $size / $chunk_size + 1 ))
echo $chunks
于 2012-05-03T09:39:53.283 に答える