2015-04-02 84 views
-1

我有一系列的測試,並且我不是很擅長bash。但這些是我擁有的工具。這就是問題所在。使用bash進行並行測試

我需要grep爲回調中的字符串。我正在尋找「From =」。如果那個字符串在那裏,我基本上想要去我創建的另一個函數稱爲BAIL,這是一個恐慌瓦特/消息。

或者我希望它只是記錄的FROM字段是空白,並繼續。

如果這是紅寶石這將是

(TURE && TRUE) || TRUE 

但是我在這裏有它在bash:

echo "$inbound_callback" | grep "From=$FROM" || BAIL "IB: FROM was NOT Blocked '$FROM'") || \ 
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'" 

我必須包裹在條件句什麼?

+0

該測試確實檢查$ FROM var被刪除。如果沒有,那麼它會停止測試,並且BAIL .. – 2015-04-02 01:54:53

+0

不清楚'$ FROM'包含什麼,或者我們如何知道'From ='是否爲空而不知道字段周圍的文本。它是獨立的嗎?它會跟着一個換行符,或其他文本,或根本沒有? – tripleee 2015-04-02 05:05:46

回答

1

根本不需要外部工具。 shell本身可以檢查字符串並執行匹配。

case $inbound_callback in 
    *From=*) BAIL "IB: FROM was NOT Blocked '$FROM'";; 
    *)  LOG "[$FROM -> $TO] IB: Found FROM '$FROM'";; 
esac 

這簡直是找字面strinng From=inbound_callback價值的任何地方。如果這不是你想要的,也許用你的問題來說明問題究竟是什麼。

你的問題的描述聽起來像你想說

echo "$inbound_callback" | grep -q "From=" && 
BAIL "IB: FROM was NOT Blocked '$FROM'" || 
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'" 

(注意&&的真實情況,並利用grep -q,以避免從一個成功的匹配輸出。我刪除$FROM完全,如你說你只是想搜索五個字符From=)。