3
我在寫腳本來打印乘法表。Bash腳本不能正常工作
#!/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
它給出了語法錯誤。
我在寫腳本來打印乘法表。Bash腳本不能正常工作
#!/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將*解釋爲野性。所以,你需要逃避它字面星(即繁殖。如果你不想逃避*,那麼你可以使用(())執行arithematic操作。
while [ $a -le "10" ]
do
((tmp = $a * $1))
printf "%d x %2d = %3d\n" $1 $a $tmp
((a++))
done
順便說一句,不要使用'expr'或反引號,除非你正在寫一個古老的非POSIX Bourne shell。如果你使用bash shebang,不要使用'['作爲數學。 – ormaaj 2013-03-12 04:56:14