base10が機能しない

base10が機能しない

私は最近bashスクリプトを使い始め、0000から9999まで計算されるスクリプトを書いてみました。かなり簡単な作業だと思いました。それからbashは0007を8進数として扱い、0009エラーを引き起こす問題に直面しました。 base10を使って解決策を見つけましたが、うまくいきません。私は何が間違っていましたか?問題のコードは次のとおりです。

guess=0000
for guess in $(seq -f "%04g" 0000 9999)
do
echo $((10#guess))
guess=$((10#guess+1))
done

ベストアンサー1

変数拡張としてマークするために、$変数名の前に()を逃しました。$guess

for guess in $(seq -f "%04g" 0000 9999)
do
  echo $((10#$guess))
  guess=$((10#$guess+1))
done

そうしないと、算術拡張がその値ではなく文字通り$(())評価され、guess値が下数に比べて大きすぎるというエラーが発生します。

おすすめ記事