Відповіді, які проголосували найкраще, не вдаються, якщо grep не повертає результатів.
Homer Simpson
Marge Simpson
Bart Simpson
Lisa Simpson
Ned Flanders
Rod Flanders
Todd Flanders
Moe Szyslak
Це неправильний спосіб зробити це :
wiggums=$(grep -iF "Wiggum" characters.txt);
num_wiggums=$(echo "$wiggums" | wc -l);
echo "There are ${num_wiggums} here!";
Там нам скажуть, що у списку є 1 Віггум , навіть якщо таких немає.
Натомість вам потрібно зробити ще одну додаткову перевірку, щоб перевірити, чи порожня змінна ( -zяк, наприклад, "дорівнює нулю"). Якщо grep нічого не повернув, змінна буде порожньою.
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";