Shell Script 檢查檔案是否有指定字串


在 Linux CLI 下可以用 grep 指令, 將檔案包含有指定字串的行印出, 或者配合 -c 參數直接印出匹配的行數, 例如:

$ grep -c string filename.txt

如果在 Shell Script 要檢查檔案是否有指定字串, 當然可以檢查以上指令輸出的數值, 但另一個更方便的方法, 是用 grep 的 -q 參數, 具體寫法是這樣:

grep 指令當加上 -q 參數後, 會根據搜尋結果回傳 0 或者 1 的 exit code, 當找到字串回傳 0; 找不到回傳 1.

如果在 CLI 使用 -q 參數, 可以用 $? 變數查詢回傳結果:

$ echo ‘hello word’ | grep hi ; echo $?
1
$ echo ‘hello word’ | grep he ; echo $?
hello word
0

Leave a Reply