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

i a erreurprogramme shell bash

pour: 8: Numéro illégal: { suggérer de bien vouloir une solution

+0

formatez le code s'il vous plaît code. – Drakosha

Répondre

5

fais comme ça

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

le tralala est incorrect, et ne laisse pas d'espace dans l'expansion de l'accolade, par exemple {0..10}, et non { 0..10 }

+0

Pourriez-vous me dire comment nous pourrions le faire dans ksh. {0..10} n'est pas valide ksh – Vijay

+1

@benjamin Vous pouvez toujours utiliser la commande standard seq comme: "for i in $ (seq 1 10); echo $ i; done " – Johan

+0

@benjamin, ma version ksh supporte l'expansion des accolades. vous pouvez essayer 'ksh -o braceexpand' ou' set -o braceexpand' dans votre script. – ghostdog74

1

Cela fonctionne en bash:

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