Bash“for”循环,如果条件计数为零?

jwb*_*ley 2 bash for-loop count

我在 bash 中有一个 for 循环;

for Names in `grep "name" $people`
do
    echo "name is $name"
done
Run Code Online (Sandbox Code Playgroud)

我怎么能有一个像这样的 if 语句;

for Name in `grep "name" $people`
# Make sure we found some names
if [ "count of $Name=0" ]
then
    echo "no names found"
fi

# Else, if we did grep out a list of names, print them
do
    echo "name is $Name"
done
Run Code Online (Sandbox Code Playgroud)

Ale*_*sky 5

如果块的返回码为 0(意味着它从未进入循环并调用),则添加复合条件测试 (&&)以打印调试文本:forfalse

for NAME in $(grep "name" $people)
do
    echo "Name is ${NAME}"
    false
done && echo "no names found"
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢它的读取方式,只需反转 for:

! for NAME in $(grep "name" $people)
do
    echo "Name is ${NAME}"
    false
done || echo "no names found"
Run Code Online (Sandbox Code Playgroud)