2017-06-02 14 views
1

bashスクリプトでエラーが発生しましたが、何も問題はありません。ここに私にエラーを与えているコードがあります。Bashスクリプトエラー:167行目:予期しないトークンの近くで構文エラーが発生しました。 '

if [ "$password" = "na" ]; then 
    log "Password not set" 
    usage 
    exit 1 
fi 

誰もがこれに間違っていますか?それは私にはうまく見えるが、私は一般的にbashにもかなり新しいです。

EDIT:コードの前の行がありますが、おそらくそれが役に立ちます。

if [ "$SITE" = "unknown" ]; then 
    log "Site not set" 
    usage 
    exit 1 
fi 

if [ "$VERSION" = "na" ]; then 
    log "Version not set" 
    usage 
    exit 1 
fi 

if [ "$password" = "na" ]; then 
    log "Password not set" 
    usage 
    exit 1 
fi 
+0

たぶんエラーは、いくつかの前の行にありますか? – airos

+2

おそらく送料が返されます。 – 123

+1

私はこれがif/thenのネストされていると思います。前のコード行を見る必要があります。 – SaintHax

答えて

0

あなたの例は私にとって間違いなく動作します。私は、あなたのファイルに '隠れた'文字が含まれている可能性があると推測します(おそらく '\ r' - 復帰 - しかし何か他のものかもしれません)。これを避けるために、ネイティブのVi/Vimファミリのエディタを使用してください。それ以外の場合は、テキストエディタの設定を確認し、「行末」をUnix/OSXに設定します。これを試してみてください:

tr -d '\r' /path/your_file.sh > /path/your_file.mod.sh 

bash -n /path/your_file.sh  ## should show error 
bash -n /path/your_file.mod.sh ## no errors 

:)
デール

関連する問題