这是我的代码
echo "multiplication table"
echo "enter number"
read n
m=0
for((j=1;j<=12;j++))
do
echo -n -e " $j\t"
done
echo ""
echo
for((i=1;i<=n;i++))
do
for((k=1;k<=12;k++))
do
m=` expr $k \* $i `
echo -n -e " $m\t"
done
echo ""
done
当我跑步时,我得到了:
malathy @ malathy:〜/ Desktop / fosslab / 20084664 / shell $ sh matrix.sh
乘法表
输入数字
2
matrix.sh:5:语法错误:循环变量错误
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
您正在运行一个脚本,该脚本使用您正在使用的shell不支持的语法。将脚本的第一行更改为:
#!/bin/bash
Korn shell(至少某些版本)和zsh也支持for
语句的形式。
如果你正在使用Bourne shell(或类似Dash的东西),你需要更改for
语句以使用seq
或jot
:
for i in `seq $n`
或
for i in `jot $n`
答案 1 :(得分:1)
尝试这个简单易用的乘法
echo Enter the multiplication number required:
read number
for i in 1 2 3 4 5 6 7 8 9 10
do
echo "$number * $i =`expr $number \* $i`"
done
答案 2 :(得分:0)
所有shell都不支持此语法:
for((j=1;j<=12;j++))
请改为尝试:
for j in {1..12}