三個重點
- 利用 echo 導到 grep,取代由檔案輸入。
- 將結果導到 /dev/null,避免列印不必要的訊息到螢幕。
- 使用正規表示是來比對整個字串。
系統內定變數 $? 的結果
- 0是成功。
- 1是失敗。
$ echo abcd | grep '^abcd$' >> /dev/null; echo $? 0
【參考】
- shell script 裡如何使用正規表示法比對字串 ?
http://ithelp.ithome.com.tw/question/10021305?tag=rt.rq - 正規表示式的入門與應用(一)
http://www.rtfiber.com.tw/~changyj/regex.1/index.html
【問題】
- 如何一次比對三個符合條件的字串。例如比對名字有 mary 或 may 或 john,只要其中一個成立就成立。
$ echo "mary" | grep -E "^mary$|^may$|^john$" >>/dev/null; echo $? 0 $ echo "sam" | grep -E "^mary$|^may$|^john$" >>/dev/null; echo $? 1
- 同事提醒上面 grep 的 -w,另一個用法。
$ echo "mary msy john" | grep -w "john" >>/dev/null; echo $? 0
【其它】
- shell script 的追蹤與 debug(shell script 正規debug的方式)
http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#debug