Bash
當文件不包含字元串時如何使用grep
在我的 bash 腳本中,如果文件中不存在某個字元串,我會嘗試列印一行。
if grep -q "$user2" /etc/passwd; then echo "User does exist!!"
如果我希望字元串存在於文件中,這就是我編寫它的方式,但是如果在 /etc/passwd 文件中找不到使用者,我該如何更改它以使其列印“使用者不存在”?
grep
如果找到至少一個模式實例,將返回成功,如果沒有,則返回失敗。因此,如果您希望同時列印“does”和“does not”,您可以添加一個else
子句,或者您可以否定該if
條件以僅獲得失敗。每個範例:if grep -q "$user2" /etc/passwd; then echo "User does exist!!" else echo "User does not exist!!" fi if ! grep -q "$user2" /etc/passwd; then echo "User does not exist!!" fi
您可以使用grep 選項 “-L / –files-without-match”來檢查文件是否不包含字元串:
if [[ $(grep -L "$user2" /etc/passwd) ]]; then echo "User does not exist!!"; fi