2010-02-11 106 views
2
!/bin/bash 
echo Enter the num 
read n 
for i in { 1..10 } 
do 
m=$((n*i)) 
echo "$i * $n" = $m 
done 

我得到了错误的的bash shell程序

为:8:非法号码:{ 好心提出一个解决方案

+0

请格式化代码代码。 – Drakosha

回答

5

做这样的

#!/bin/bash 
read -p "Enter the num: " n 
for i in {1..10} 
do 
    m=$((n*i)) 
    echo "$i * $n" = $m 
done 

的家当是错误,并且不要在支架扩展中留下空间,例如{0..10},而不是{ 0..10 }

+0

你能告诉我,我们怎么能在ksh中执行它。{0..10}无效是ksh – Vijay

+1

@benjamin你总是可以使用标准的seq命令,例如:“for i in $(seq 1 10);做echo $我;完成“ – Johan

+0

@benjamin,我的ksh版本支持大括号扩展。您可以在脚本中尝试'ksh -o braceexpand'或'set -o braceexpand'。 – ghostdog74

1

这工作在bash:

for ((i=1; i<=10; i++)); do 
    # ... 
done