2016-11-12 29 views
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_ 
+2

這是因爲幾乎所有在bash是一個命令,做你的支票後,你定義一個函數的函數裏面的線 - 這是成功的,因此狀態代碼爲0.您應該在檢查狀態之前將檢查移入該函數,或將狀態保存在變量中並檢查net_info函數中的變量。 – jszakmeister

+0

非常感謝,它有效。 –

回答

0

由於Jszameister幫助它工作的,當我提出這樣的

function net_info 
{ 
echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1 
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 
} 
相關問題