2014-05-18 84 views
0

也能收到這個問題,當我進入像這樣的終端多於1個參數:KSH錯誤線26:在第41行語法錯誤:'做」意外

./learn 1 2

我結束了從while循環,但評論的東西沒有得到的原因。

#!/bin/ksh 
# 
count=$# 

if test $count -lt 1 
then 
    echo "Enter at least 1 number" 
    exit 
elif test $count -gt 9 
then 
    echo "Enter max 9 numbers" 
    exit 
else 
    echo "Parameter check: PASSED" 
fi 

set -A numbers [email protected] 
first=${numbers[0]} 

if test $count -eq 1 
then 
    echo "$first = $first" 
    exit 
else 
    sum=$first 
    printf "$first + " 
fi 

while test "$count" -gt 1 
do 
    shift 
    first=${numbers[0]} 
    ((sum = sum + first)) 
    if test $count -gt 2 
    then 
    printf "$first + " 
    else 
    printf "$first = $sum" 
    fi 
    ((count = count - 1) 
done 

它基本上是一個程序,它在用戶輸入...即1 2 3從屏幕和相加,得到一個總和

回答

5

done之前,

((count = count - 1) 

具有兩個打開但只有一個右大括號。

+0

啊愚蠢的錯誤。感謝那! – lecardo

+0

@Bobski:考慮將來使用http://shellcheck.net;它會檢測到你的問題。 – mklement0

+0

謝謝你。 – lecardo

相關問題