は、私は私が= 09 価値を持っていたと私は$((バリュー))を使用したときにエラーが発生したことでbashスクリプトを書きましたのlinux
(エラー・トークンが「09」である)のベースには大きすぎるし、私はちょうどこのラインで新しいbashのファイルを作っ:
$((09))
を、これが再びエラーが発生しました。私はそのプログラムのために自分の道を変えましたが、この質問は私にとっては残っていました。なぜですか?どうしましたか?ちょうど08と09にこの問題があります。
は、私は私が= 09 価値を持っていたと私は$((バリュー))を使用したときにエラーが発生したことでbashスクリプトを書きましたのlinux
(エラー・トークンが「09」である)のベースには大きすぎるし、私はちょうどこのラインで新しいbashのファイルを作っ:
$((09))
を、これが再びエラーが発生しました。私はそのプログラムのために自分の道を変えましたが、この質問は私にとっては残っていました。なぜですか?どうしましたか?ちょうど08と09にこの問題があります。
ベースをbashで指定できます。 bash manualから
Value=09
echo $((10#$Value * 2)) # ==> 18
:ベース10を強制的に
定数をリード0と8進数として解釈されます。先頭の「0x」または「0X」は16進数を示します。それ以外の場合、数値は[base#] nの形式をとり、baseは算術ベースを表す2〜64の10進数で、nはそのベースの数値です。 base#を省略すると、base 10が使用されます。
09
は、octalと解釈されます。小数を使用する場合は9
を使用してください。
先頭のゼロは、の8進数(ベース8)の残りの数字を解釈することを意味します。これは数字0〜7しか許さないので、9は無効です。
のでecho $((0xFF))
印刷プログラミング言語のほとんどで255
、0
で始まる番号がoctal numberとして扱われ、進(ベース16)にも0x
あります。
はい、ありがとうございました。私は$((019))を設定しましたが、それも間違っていました。どのような悪い8進数を作る方法...! –