シェルスクリプトで掛け算


このエントリーをはてなブックマークに追加

シェルスクリプトで掛け算をしようとして少しはまった。やりたいことは、数字0, 1, 2, ...が与えられた時、数字0, 5, 10,...を出力すること。

これはダメな例。

#!/bin/sh
for i in {0..10}
do
    num=`expr 5*$i`
    echo $num // "5*0", "5*1", "5*2", ...が出力される
done

このスクリプトを正しくするためには以下のことが必要。

  • 掛け算は * ではなく \*
  • 演算記号の前後に空白

正しいスクリプトは以下。

#!/bin/sh
for i in {0..10}
do
    num=`expr 5 \* $i`
    echo $num  // 0, 5, 10, ...が出力される
done