2015-08-19 96 views
0

反正在init.d腳本沉默Amazon Linux的init.d腳本停止回聲管到grep輸出到終端

response=`curl 'http://localhost:9200'` 
if (echo "$response" | grep -e "\"status\" : 200"); then 
... some logic 

此命令和預期條件的作用下面的命令,但是當腳本運行service scriptname start被打印到控制檯

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 333 100 333 0  0 54278  0 --:--:-- --:--:-- --:--:-- 55500 
    "status" : 200, 
Starting scriptname           [ OK ] 

理想地,以下如果可能的話,我想顯示,只顯示:

Starting scriptname           [ OK ] 
+3

使用'捲曲-s ...'' – anubhava

+1

人捲曲事| grep -i -C 2 quiet'和'man grep | grep -i -C 2 quiet' – Cyrus

回答

1

Curl有一個靜音標誌來阻止它將輸出寫入標準輸出和標準錯誤。如果使用無聲標誌,則該腳本會停止工作,因爲其中沒有對grep來if語句找到

curl -s 
curl --silent 

:您可以使用的。使用以下命令將看看返回值從捲曲,而不是分析它的響應:

if response=`curl -sS 'http://localhost:9200'`; then 
... some logic 

這將打印上的成功或失敗的錯誤消息罷了。響應變量將包含從請求中讀取的所有數據。

您可以瞭解更多關於什麼捲曲可在其manpage

+1

您可以忽略文本回應,並簡單檢查'curl'中的退出代碼。這通常更簡單和更強大。 – tripleee

+0

完全同意,我有一個草案作爲答案,我會復活它 –