2016-12-06 7 views
-1

NICカード名の入力に基づいて、見つかったIPを分離するスクリプトを作成しました。Bashスクリプトが間違った値を出力しています

#!/bin/bash 
echo what is your NIC? 
read NIC 
IP=`ifconfig $NIC 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'` 
NEWSTRING=${IP:0:6} 
ALPHARETTA="12.101" 
EUFAULA="12.102" 

if [ "${NEWSTRING}" = "${ALPHARETTA}" ] ; then 
    echo I'm in Alpharetta 
else 
    echo I'm in Eufaula 
fi 

はeth0をされるならば12.101.1.1それだけで私は...私のテストのための12.101と12.101を比較していると私は戻って、このエコーを取得しています(12.101)

かかるだろう... 。

私は明らかに愚かなことをしていて、それを見ていません。誰かが正しい方向に私を指摘できますか?

+2

http://shellcheck.netでもコードを実行し、上記のエラーを修正したときに戻ってきます。 – andlrc

答えて

2

bashパーサーは、「私は」という言葉にエコーしようとしているアポストロフィー文字を見ており、スクリプトの10行目から12行目までの長い文字列を1つ印刷しようとしていると考えています。このサイトの構文ハイライトがどのように問題を示しているかを見ることもできます。エコーしているメッセージは引用符で囲む必要があります。例:

echo "I'm in Alpharetta" 
+0

大変なこと、私は笑いを忘れたのは信じられません。ありがとう! :)私は答えとして受け入れるだろうが、それは私がもう7分間それをさせることはありません。 – TonyW

関連する問題