function ping {
nome=$(dialog --title "Inform o endereço que deseja PINGAR" --inputbox "IP ou URL - \
Lembrando que será disparado 10 pings para o endereço informado." 10 45 --stdout)
status=$?
if [[ $status -eq 0 ]]; then
ping -c 10 $nome
rc=$?
if [[ $rc -eq 0 ]]; then
echo "#####################################"
echo "## Endereço: $nome | Status: UP"
echo "#####################################"
else
echo "#####################################"
echo "## Endereço: $nome | Status: DOWN"
echo "#####################################"
fi
else
echo "Você optou por cancelar a operação."
fi }; valor=`ping`; echo "RESULTADO FOI: "$valor
当我运行脚本(./meuscript.sh
)时,只有在我选择取消对话框时才会返回。
如果我在没有该功能的情况下运行脚本,则命令正确执行
答案 0 :(得分:3)
你有一个无限循环。将该功能重命名为其他内容,这样您就不会ping
调用ping
来调用ping
来调用ping
...
此外,您可能希望大幅重构脚本。任何看起来像
的东西command
if [[ $? == 0 ]]; then
stuff
fi
写得更好
if command; then
stuff
fi
所以你最终会得到像
这样的东西function renamed_ping {
if nome=$(dialog --title "Inform o endereço que deseja PINGAR" --inputbox "IP ou URL - \
Lembrando que será disparado 10 pings para o endereço informado." 10 45 --stdout); then
if ping -c 10 "$nome"; then
status="UP"
else
status="DOWN"
fi
echo "#####################################"
echo "## Endereço: $nome | Status: $status"
echo "#####################################"
else
echo "Você optou por cancelar a operação."
fi
}
echo "RESULTADO FOI: $(renamed_ping)"
我还冒昧地添加了proper quoting,并将一个不必要的变量分解出来,并删除了缩进中的不规则性。
(拥有函数echo
并捕获它以便你可以echo
它仍然是一个难闻的气味,但这看起来像你的第一个脚本练习之一。)