shuzo-kino.hateblo.jp
でやった話題の発展。
シェルスクリプト中で"0042"みたいな形の文字列で格納されてる10進数の数値を取り出す方法について。
実際のところ
こんな値があったとします。
$ FOOBAR="0042"
$ echo $FOOBAR
0042
API用のJSONに渡す関係で、こいつは数値として格納してやりたいのですが、となると0が邪魔。
printfの書式指定構文でいけるやろと思っても、さすがにそこまで賢くありません。
$ printf "%d" $FOOBAR
34
というわけで本題。
魔界記法めいていますが、変数展開の際にこうやれば意図通り42と引っ張り出せます。
$ echo $((10#$FOOBAR))
42
ちゃんと計算も可能。
$ printf $((10#$FOOBAR + 1))
43