eval
bashでは読み込んだ数字も文字変数になるので,数値変数として扱うためには変換が必要になる.
(bashのところに書くか迷った.bash限定なのか分からん)
samplt.txtというファイルがあるとする.
書かれている数字を読み込んで倍にする
実行結果
頭に0が付いた数字
bashでは 010 などのように頭に0が付いた数字は8進数として扱われるため,evalで変換すると10進数の8として解釈される.080などは8進数として正しくない表現ということでエラーになる.
10#$num のように「10#」を付けると10進数として解釈してくれるので,これを使って次のように変換できる.