feedlyのショートカットGoogle cloud printを試す

2012年04月20日

bashの数字

自分メモ

bash等で文字列から切り出した数字を演算して他の数字を作るときの注意

数字として扱うときに頭に0が付いているときは8進数を意味する!

このことすっかり忘れてて大量にJob流した後エラーを捨ててて後になって気がついた
どっかに書いておかないと忘れちゃう(´・ω・`)..ので書いておくw

ダメなケース
 $ A="08"
 $ B="01"
 $ printf "%02d" $(($A + $B))
bash: 08: value too great for base (error token is "08")
そりゃ8進数で8ってあかんよね
というわけ10進数で扱いたいのでこう直す。 
$ printf "%02d" $((10#$A + 10#$B))
09

別の変数に代入するときは、
$ C=$(builtin printf "%02d" $((10#$A + 10#$B)))
$ echo ”$C”
”09”


このエントリーをはてなブックマークに追加 Share on Tumblr Clip to Evernote
highfrontier at 12:34│Comments(0)linux | たわごと

コメントする

このブログにコメントするにはログインが必要です。

feedlyのショートカットGoogle cloud printを試す