私のbashスクリプトでファイルに特定の文字列がない場合は、行を印刷しようとしています。
if grep -q "$user2" /etc/passwd; then
echo "User does exist!!"
文字列がファイルに存在するようにするには、次のように書くことができますが、/etc/passwdファイルにユーザーが見つからない場合は、「ユーザーが存在しません」と印刷するように変更するにはどうすればよいですか?
ベストアンサー1
grep
パターンのインスタンスが1つ以上見つかった場合は成功を返し、何も見つからない場合は失敗を返します。したがって、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