シェルスクリプトで掛け算をしようとして少しはまった。やりたいことは、数字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