我在爲一個數組變量查找一些php代碼文件,並遇到了一個我很好奇的問題。
我試圖給grep:
grep -RF "$array_variable['some_key'][$key_variable]" *
,並返回任何內容。但是,如果我逃過第二個美元符號,它就會找到具有該模式的線條。
grep -RF "$array_variable['some_key'][\$key_variable]" *
手冊頁中的-F標誌表示它將模式視爲固定字符串而不是正則表達式。它似乎只處理第一個美元符號。
請幫我理解grep是如何解釋這個命令的。這可能是一個shell問題,而不是一個正則表達式問題?
UPDATE增加了一個額外的數組層,它顯示了爲什麼我不想使用單引號。逃避單引號比美元符號更重要。
請參閱:[在bash中的單引號和雙引號之間的區別](http://stackoverflow.com/q/6697753/3776858) – Cyrus
我認爲第一個$被視爲「行首」錨而不是字面值$。 –
你打算做什麼'「$ array_variable ['some_key'] [$ key_variable]」'是什麼意思?您的問題包括簡潔,可測試的樣本輸入(包括任何變量的值)和預期輸出,然後有人可以幫助您。 –