2012-02-28 9 views
1

このコードは実行できません。 は、ユーザが入るまで-1私はこのエラーを取得しておくただし、スクリプトは を終了する必要があり、ループ内のスクリプトに入力するユーザーに番号を許可するように意図されています。ここでは予期しないオペレータの.shファイル

-ne: unexpected operator 

はコードです:

#!/bin/sh 

condition= 0 

while [ $condition -ne -1 ] 
do 
     echo $condition 
     read condition 
done 

答えて

2

condition=0の後にスペースを削除する必要があります。スペースはbashの自然なトークンセパレーターなので、スペースを入れる場所には非常に注意する必要があります。この場合、スペースは、想定されるプログラム(0)の初期化された変数のリスト(この場合は空の値)を区切ります。

-1

閉じ括弧の後にセミコロン;を追加します。

+2

セミコロンは、 'do'が' while'と同じ行に表示される場合にのみ必要です。 –

2

=の後のスペース。それを除く 。

2

さて、多くの人がすでに答えを出してくれましたが、それが必要な場合はこれを参照してください(ちょっと別のやりかたです)。

#!/bin/sh 

while read condition; do 
case "$condition" in 
    -1) printf "GOOD BYE!\n"; break ;; 
    *) printf "AGAIN, PUT A NUMBER!" ;; 
    esac 
done 
+0

チップありがとう:) – lilroo

関連する問題