我的ping功能似乎循环。
有人知道为什么吗?
Bash-x输出:
++ PING ='ping -q -c1'
++ ping -q -c1 -q
++ TEMPIP = -q
++ PING ='ping -q -c1'
++ ping -q -c1 -q
++ TEMPIP = -q
++ PING ='ping -q -c1'
++ ping -q -c1 -q
++ TEMPIP = -q
++ PING ='ping -q -c1'
代码:
IP1="10.1.1.2"
IP2="10.1.1.3"
IP3="10.1.1.4"
SEC=300
function ping {
TEMPIP="$1"
PING="ping -q -c1"
${PING} ${TEMPIP}
if [ $? -ne 0 ]
then
echo 1
else
echo 0
fi
}
function resetrouter {
#dosomething
}
function check {
IP1result=$(ping $IP1)
IP2result=$(ping $IP2)
IP3result=$(ping $IP3)
}
检查
答案 0 :(得分:4)
因为您已将其命名为ping
,并且您要运行的命令的名称也称为ping
,这意味着它以递归方式执行该函数,而不是调用名为{{的实际命令1}}。
将函数ping
重命名为其他名称。
答案 1 :(得分:0)
如果要调用函数ping
,则应使用函数内ping
命令的完整路径。您可以致电:
$ which ping
/usr/bin/ping
因此PING="ping -q -c1"
将成为PING="/usr/bin/ping -q -c1"