我試圖評估一個shell腳本中的grep
表達式,並且該grep使用文字星號(*),但該星號似乎被我的bash擴展而不是保持字面星號:在shell腳本中以grep模式使用文字(*)
branch_description=$(git branch --list -vv | grep "^\*")
我能做些什麼來運行在這一背景下grep
,讓它接受其PATTERN
參數文字星號?
我試圖評估一個shell腳本中的grep
表達式,並且該grep使用文字星號(*),但該星號似乎被我的bash擴展而不是保持字面星號:在shell腳本中以grep模式使用文字(*)
branch_description=$(git branch --list -vv | grep "^\*")
我能做些什麼來運行在這一背景下grep
,讓它接受其PATTERN
參數文字星號?
的問題是,慶典是解釋\
和剝離出去了,因爲它是雙引號。改成
branch_description=$(git branch --list -vv | grep '^\*')
會做你想做的。請參閱bash手冊中的QUOTING部分。
您可以使用單引號中的grep通過外殼以避免*
擴展:
branch_description=$(git branch --list -vv | grep '^\*')
一種解決方案是使用ASCII進制編碼:
branch_description=$(git branch --list -vv | grep "^\052")
有用,外的箱子答案見
man 7 ascii
+1 – JellicleCat