讓x='abc.xyz'
和y='abc:xyz'
以便滿足以下條件(打印「匹配」和「差異」):bash的變量和正則表達式比較
[[ "${x}" =~ abc".xyz" ]] && echo "matches"
[[ "${y}" =~ abc".xyz" ]] || echo "diff"
現在,字面l=".xyz"
可以提取和測試仍然工作(注意雙引號l
裁判):
[[ "${x}" =~ abc"${l}" ]] && echo "matches"
[[ "${y}" =~ abc"${l}" ]] || echo "diff"
而且問題:如果我們進一步嘗試r="abc\"${l}\""
或r="abc${l}"
,第一個測試永不打印「匹配」:
[[ "${x}" =~ ${r} ]] && echo "matches"
[[ "${y}" =~ ${r} ]] || echo "diff"
r
的正確形式應該通過兩種測試?
它適用於我 – anubhava
@anubhava不,它沒有。這是一個微妙的bash問題。 –
當然是這樣,[看這個demo](http://ideone.com/0nnx7v) – anubhava