Bash脚本打印错误的值

时间:2016-12-06 22:35:37

标签: linux bash echo quotes

我已经根据网卡名称输入创建了一个脚本,用于分隔找到的IP。

#!/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 ......我正在回复这个回声....

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

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

1 个答案:

答案 0 :(得分:2)

bash解析器正在查看您试图在“我是”这个词中回显的撇号字符,并且它认为您正在尝试打印从脚本的第10行到第12行的一个长字符串。您甚至可以看到此站点上突出显示的语法也表明存在问题。你应该用引号将你回复的消息包装起来。例如:

echo "I'm in Alpharetta"