用 grep 搜尋檔案中出現的文字,通常會這樣寫:
$ grep STR fileToSeatch
不過當要搜尋的字串有特出符號,像是「-」,就會出現錯誤訊息:
$ grep "->getVal()" *
grep: invalid option -- '>'
原因是 grep 將「-」開頭的字串視為命令選項 (command option),去尋找「>get()」這個選項,而這個選項並不存在,所以導致錯誤。
在命令輸入前加上「–」,表示之後的參數都當作一般輸入而非選項 (end of option):
$ grep -- "->getVal()" *
要搜尋的字串,就算沒有空白,也建議用引號括起來。像是「>」、「&」等,沒加上引號會在 bash 解析時就發生錯誤:
$ grep > * # shoud be: grep ">" *
bash: *: ambiguous redirect