2016-10-04 24 views
0

以下のbashスクリプトでは、サーバー上のすべてのIPを取得してGPS座標を返しています。このスクリプトはifステートメントがなくてもうまく動作しますが、約10個ほどのIPがそれぞれの座標で返された後、「有効なIPアドレスを入力してください」というメッセージが返されます。したがって、 "ip"が空であってもdo tracerouteコマンドが呼び出されたという問題があると私は考えています。したがって、私は入れIf bashスクリプトのステートメント構文エラー

行う前で

IPが空でないときにのみ実行されるように、「[[$ IP]]であれば」。 ": '場合は、' 予期しないトークンの近くに構文エラー 行6:ライン6 '[[$ IP]]の場合;'。" しかし、今、スクリプトが...私はエラーを取得する

を実行しません

if文にはさまざまなバリエーションがあり、同じエラーを再び出すためにのみ動作するようになっています。助けてください?

ありがとうございます!

Bash Script

+2

あなた 'if'は、ループの最初にある' do'前にあるものであることは、あなたがそこにやろうとしているということでしょうか?あなたはそれを終了するための 'fi'を持っていないので、私は何がそのブロックの一部になっているのかは分かりません。また、ここにコードのイメージを置かないでください。コードブロックとして実際のコードを入れて、人々がそれを検索してコピー/貼り付けできるようにしてください。 –

+0

うん、これだった。なぜそれを理解するのに数分かかりましたが、今すぐ取得します。私の一部で間違ったミス。ありがとう! – boppa

答えて

0

@Ericのコメントで指摘したように、あなたの構文はproper.Youがshellcheckであなたのコードの構文をチェックすることができません。詳細については、リンクの下にif [[ -z "$ip" ]]

ゴー:また

は、あなたがあなたのケースでは -zオプションに

を使用する必要が空の文字列をチェックすることも Null & empty string comparision in Unix Bash Shell Script

を、それが良いです常に二重引用符にpratice "変数

関連する問題