Die am häufigsten gewählten Antworten schlagen fehl, wenn ein grep keine Ergebnisse liefert.
Homer Simpson
Marge Simpson
Bart Simpson
Lisa Simpson
Ned Flanders
Rod Flanders
Todd Flanders
Moe Szyslak
Dies ist die falsch Art, es zu tun :
wiggums=$(grep -iF "Wiggum" characters.txt);
num_wiggums=$(echo "$wiggums" | wc -l);
echo "There are ${num_wiggums} here!";
Es wird uns sagen, es gibt 1
Wiggum in der Liste, auch wenn es keine gibt.
Stattdessen müssen Sie eine zusätzliche Prüfung durchführen, um festzustellen, ob die Variable leer ist ( -z
(wie in "ist Null"). Wenn grep nichts zurückgegeben hat, ist die Variable leer.
matches=$(grep -iF "VanHouten" characters.txt);
if [ -z "$matches" ]; then
num_matches=0;
else
num_matches=$(echo "$matches" | wc -l);
fi
echo "There are ${num_matches} VanHoutens on the list";