Bash 脚本打印了错误的值

Bash script is printing the wrong value

我创建了一个脚本,根据输入的 NIC 卡名称将它找到的 IP 分开。

#!/bin/bash
echo what is your NIC?
read NIC
IP=`ifconfig $NIC 2>/dev/null|awk '/inet addr:/ {print }'|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 进行测试...我收到了回音....

what is your NIC?
eth0
Im in Alpharetta
else
  echo Im in Eufaula

我显然在做一些愚蠢的事情,而且没有看到它..有人可以指出我正确的方向吗?

bash 解析器看到您试图在单词 "I'm" 中回显的撇号字符,它认为您正在尝试打印一个从第 10 行到第 12 行的长字符串你的脚本。您甚至可以看到该站点上的语法高亮显示也表明存在问题。您应该将要回应的消息用引号引起来。例如:

echo "I'm in Alpharetta"