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

标签 bash for-loop count

我在 bash 中有一个 for 循环;

for Names in `grep "name" $people`
do
    echo "name is $name"
done

我怎样才能有一个 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

最佳答案

添加 compound conditional test (&&)如果 for block 的返回码为 0(意味着它从未进入循环并调用了 false),则打印调试文本:

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

如果您不喜欢它的读法,只需将 for: 反转即可:

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

关于Bash "for"循环,如果条件计数为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214865/

相关文章:

C: 列出当前 shell 的别名(不是子 shell!)

javascript - 按值将参数传递给 onClick 函数

r - 将在 for 循环中创建的多个 ggplots 保存到单个图

sql - 使用查询进行渐进计数?

sql - Django - 计算相关模型的子集 - 需要为每个项目注释事件优惠券的数量

linux - curl 或读取每一行 url 文本文件,然后将每一行输出到标记为连续数字的单独文件 - 1 2 3 等

linux - 使用带有 w 命令的 sed 管道显示空闲时间最长的用户

bash - 为什么这个自动完成功能在 Linux 中不自动完成?

php - php 和 javascript 中解释 "for"循环的区别

mysql - 如何使用具有不同值的 COUNT(*) 函数?