2016年5月24日火曜日

Bashで算術演算

他人が書いたスクリプトを読んでいて、今更ながらBashの (( 数式 )) 記法を知った。manによると

       ((expression))
              The expression is evaluated according  to  the  rules  described
              below  under ARITHMETIC EVALUATION.  If the value of the expres-
              sion is non-zero, the return status is 0; otherwise  the  return
              status is 1.  This is exactly equivalent to let "expression".
とのこと。あくまでBashの組み込み機能なので、どんな環境でも使えるとは限らないけど。(( 数式 ))はダブルクオートで括っているのと同等のようで、乗算演算子の*をエスケープが不要なのが地味に嬉しい。

ついでに、

bash% echo $(( 1+2*3 ))
7
と頭に$を付ければ、その場で文字列にしてくれる。

でもまあ、可搬性を考えたらスクリプトではexprかな。

0 件のコメント:

コメントを投稿