シェルのコメントではない#(シャープ)記述$((expression)) [bash]

sh

シェルのコメントではない#(シャープ)記述$((expression)) [bash]

一般的にコメントアウトする時に「#」を使いますが、たまにシェル内にコメントではない#(シャープ、ハッシュマーク)の記述があります。

これは$((expression))記述内で使える記述で、この場合の「#」はbash独自の機能となり、進数計算をしています。

「#」の左が基数、右が基数での数値を表し、左右の値をもとに10進数に変換した値を出力します。

例えば、10#11は10進数の11を10進数で表示したものなので11、2#11は2進数の11を10進数で表示したものなので3という風になります。当然数値計算なので下例のように$((expression))内で計算をする事も可能です。

echo $((10#11))
#11
echo $((2#11))
#3
echo $((8#11))
#9
echo $((16#11))
#17
MAX_LIM=3
fin_num=$((10#$MAX_LIM - 1))
echo $fin_num
#2

 

  • この記事を書いた人

朝倉卍丸

シングルモルトスコッチなどのお土産を持ってきた人を助けるのが好きです。まあ、昔ながらの方法でやりたいこともありますよね。

-sh