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

я получил ошибку вБаш оболочка программы

для: 8: Illegal номер: { любезно предложить решение

+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); do echo $ i; done " – Johan

+0

@benjamin, моя версия ksh поддерживает расширение скобки. вы можете попробовать 'ksh -o braceexpand' или' set -o braceexpand' в вашем скрипте. – ghostdog74

1

Это работает в Баш:

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