2011-09-15 23 views
2

雙引號我使用以下條件在bash腳本:巴什 - 內BACKTICK

if `grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"`; then 
    .... 
fi 

它基本上工作。除非$ {OVERRIDE_ACTIONS}中的路徑的任何部分包含空格,否則grep將失敗。我怎樣才能得到這個包含路徑的空間工作>

回答

8

刪除反引號:

if grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"; then 
    ... 
fi 

爲什麼?如果grep成功找到您的模式,則返回值爲0;如果失敗,則返回1。如果條件評估爲0,則將執行if語句的主體。