2016-06-08 64 views
0

下面是一些從我的shell腳本行:如何使用curl獲取Web服務器類型?

curl -I --connect-timeout 60 google.com|grep "Server:" >> 1000-server.txt 
curl -I --connect-timeout 60 yahoo.com|grep "Server:" >> 1000-server.txt 
curl -I --connect-timeout 60 bing.com|grep "Server:" >> 1000-server.txt 

我的腳本是正確獲取Web服務器類型在大多數情況下:

Server: gws 
Server: ATS 
Server: Microsoft-IIS/8.5 

但是,如果出了curl連接超時或得到錯誤,它不輸出任何消息。此外,如果由於某種原因grep找不到任何內容,則不會輸出任何錯誤消息。

如果curlgrep失敗,是否有任何方式輸出一個錯誤消息,只是說像"ERROR: NOT FOUND"

很抱歉,如果這是一個新手的問​​題,只是不出來...

回答

0
curl -I --connect-timeout 60 google.com|grep "Server:" >> 1000-server.txt || echo ERROR | tee -a 1000-server.txt 

curl ... | grep ...命令將返回false,如果grep的不查找字符串。在這種情況下,​​3210將會執行。

從回波的輸出被管道輸送到三通,這,反過來,將追加(-a)輸出到文件1000 server.txt也打印輸出到STDOUT相同。

+0

這幾乎看起來像這樣做,但它不會在「1000-server.txt」中回顯「ERROR」,它只是在終端中顯示它。 – Edward

+0

嗨,你能解釋一下你的答案嗎?作爲代碼的答案傾向於在審查隊列中彈出。謝謝! – Will

+0

增加了更多信息 –