乘法表的shell脚本

时间:2011-03-21 17:03:55

标签: shell

这是我的代码

mul.sh

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:语法错误:循环变量错误

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您正在运行一个脚本,该脚本使用您正在使用的shell不支持的语法。将脚本的第一行更改为:

#!/bin/bash

Korn shell(至少某些版本)和zsh也支持for语句的形式。

如果你正在使用Bourne shell(或类似Dash的东西),你需要更改for语句以使用seqjot

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}