fantingftt123 发表于 2022-04-24 09:52

脚本处理逻辑

各位大佬好:
          脚本如下:
#!/bin/sh
vip=`cat /etc/keepalived/keepalived.conf | grep -C 8 'check'| sed -n '/virtual_ipaddress/{n;p}'| awk '{print $1}'`
echo "$vip" >> /home/mysql/a.log

count=`ip a | grep "$vip" | wc -l`
if [[ $count -eq 0 ]]; then
    echo `date "+%Y-%m-%d %H:%M:%S"` >> /home/mysql/123.log
    echo "123456789" >> /home/mysql/123.log
else
    echo `date "+%Y-%m-%d %H:%M:%S"` >> /home/mysql/456.log
fi
问题:
1、当count变量的值为1时,为啥会输出文件123.log? 不应该是执行else分支吗?

a5love3n 发表于 2022-04-24 11:12

#!/bin/sh
vip=`cat /etc/keepalived/keepalived.conf | grep -C 8 'check'| sed -n '/virtual_ipaddress/{n;p}'| awk '{print $1}'`
echo "$vip" >> /home/mysql/a.log

count=`ip a | grep "$vip" | wc -l`
#这里加上如下一行,确定count的值是不是等于1
echo "$count"
if [[ $count -eq 0 ]]; then
    echo `date "+%Y-%m-%d %H:%M:%S"` >> /home/mysql/123.log
    echo "123456789" >> /home/mysql/123.log
else
    echo `date "+%Y-%m-%d %H:%M:%S"` >> /home/mysql/456.log
fi

fantingftt123 发表于 2022-04-24 12:01

把count变量输出到一个文件中看结果是0,但是vip变量是有值的,那应该是个1,为啥是0没明白。

Shell_HAT 发表于 2022-04-24 14:39

本帖最后由 Shell_HAT 于 2022-04-24 14:40 编辑

回复 3# fantingftt123


观察一下到底是哪个环节出了问题
...
echo ---$vip---
ip a | grep "$vip"
ip a | grep "$vip" | wc -l
count=`ip a | grep "$vip" | wc -l`
echo $count
...

本友会机友会摄友会 发表于 2022-04-25 16:06

页: [1]
查看完整版本: 脚本处理逻辑