他人が書いたスクリプトを読んでいて、今更ながら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 件のコメント:
コメントを投稿