1
我不明白为什么我的脚本不起作用。当我在Linux中连接互联网时,它会显示在线短语。当我没有互联网连接时,仍然显示在线短语而不是离线。Ubuntu - 如果命令似乎不提供其他结果
#!/bin/bash
# system_page - A script to monitor various connections and produce
# system information in HTML file
##### Constants
TITLE="Monitor Information for $HOSTNAME"
RIGHT_NOW=$(date +"%x %r %Z")
TIME_STAMP="Updated on $RIGHT_NOW by $USER"
# clear the screen
clear
echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1
function net_info
{
if [ $? -eq 0 ]; then
echo "Online"
echo "<h2 style="background-color:#00FF00"><font size="6"> INTERNET IS CONNECTED</h2>"
else
echo "Offline"
echo "<h2 style="background-color:#FF0000"><font size="6"> INTERNET IS NOT CONNECTED</h2>"
fi
}
##### Main
cat <<- _EOF_
<html>
<head>
<title style="background-color:#0000FF">$TITLE</title>
</head>
<body>
<h1>$TITLE</h1>
<p>$TIME_STAMP</p>
$(net_info)
</body>
</html>
_EOF_
这是因为几乎所有在bash是一个命令,做你的支票后,你定义一个函数的函数里面的线 - 这是成功的,因此状态代码为0.您应该在检查状态之前将检查移入该函数,或将状态保存在变量中并检查net_info函数中的变量。 – jszakmeister
非常感谢,它有效。 –