我创建了一个脚本,根据输入的 NIC 卡名称来分隔它找到的 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 进行测试...并且我得到了这个 echo ...
what is your NIC?
eth0
Im in Alpharetta
else
echo Im in Eufaula
我显然在做一些愚蠢的事情,但没有看到它..有人能指出我正确的方向吗?
最佳答案
bash 解析器看到您试图在“I'm”一词中回显的撇号字符,并且它认为您正在尝试打印一个跨越脚本第 10 行到第 12 行的长字符串。您甚至可以看到该网站上的语法突出显示也表明存在问题。您应该将要回显的消息用引号引起来。例如:
echo "I'm in Alpharetta"
关于linux - Bash 脚本打印错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41006195/