九九を印刷するスクリプトを書いています。
#!/bin/bash
a=1
while [ $a -le "10" ]
do
tmp=`expr $a * $1`
printf "%d x %d = %d\n" $1 $a $tmp
a=`expr $a + 1`
done
構文エラーが発生します。
九九を印刷するスクリプトを書いています。
#!/bin/bash
a=1
while [ $a -le "10" ]
do
tmp=`expr $a * $1`
printf "%d x %d = %d\n" $1 $a $tmp
a=`expr $a + 1`
done
構文エラーが発生します。
次のように*をエスケープします
while [ $a -le "10" ]
do
tmp=`expr $a \* $1`
printf "%d x %2d = %3d\n" $1 $a $tmp
a=`expr $a + 1`
done
上記のコードのPlz注\*。
ここで、bashは*をワイルド文字として解釈します。したがって、それをリテラルstar(つまり乗算。エスケープしたくない場合は*)にエスケープする必要があります。これは、算術演算を実行する(())を使用できます。
while [ $a -le "10" ]
do
((tmp = $a * $1))
printf "%d x %2d = %3d\n" $1 $a $tmp
((a++))
done