bash - 有一个 bash“while”循环,要么从 STDIN 读取行,要么调用函数
问题描述
我是 bash 脚本的新手。我可以做这个:
while [ read line ]
do
# do something with $lin
done
我也可以这样做:
while [ checkBufferedLines ]
do
# do something
done
但我想要完成的是这样的:
while [ read line ] || [ checkBufferedLines ]
do
# do something with $line or the buffered lines
done
$line
简而言之,如果 a被分配stdin
或函数调用返回true
or ,我希望循环运行1
,并且我希望 a$line
短路函数调用(如果存在)。
这就是我想要完成的;可以这样做吗?或者将read line
停止循环,因此checkBufferedLines
函数也不会在“或”条件下进行评估?
解决方案
推荐阅读
- java - 从链表中搜索并删除一个节点
- azure - 使用 Azure 数据工厂进行参数化
- python - 如何从数据框中创建序列并将它们放入数组数组或列表中?
- c# - 如何在 TPM 1.2 中存储密钥
- python-3.x - Pandas .describe() 在表中返回错误的列值
- swift - Swift TableView 更多加载按钮
- deployment - 在 gitlab-ci 中获取包含项目的特定目录
- django - 您将媒体文件夹保存在 Django 项目中的什么位置?
- python-3.x - 使用其他列的元素在 pandas 中创建一个新的 col
- php - 如何使用 PHP 在循环外获取值