每当我需要限制shell命令的输出时,我都会使用less来对结果进行分页:
cat file_with_long_content | less
它可以很好地工作,但我很好奇的是,即使输出永远不会结束,less仍然可以工作,考虑在inf.sh文件中包含以下脚本:
while true; do date; done
然后我跑
sh inf.sh | less
而且它仍然能够再次对结果进行分页,所以说管道流式传输结果而不是等待命令完成后再输出结果是正确的吗?
我在试着给一些搜索结果打分/排名。
通常情况下,这是一组is,表示我们希望评分/排名的用户,SomeModel包含与给我们排序标准的用户相关联的资产。
SomeModel.aggregate([
{$match: {ownerId: {$in:userIds}}},
//Do stuff here to generate a score for the results. This works fine...
...
//at this point you'll have an array like this: {userId:<id>, score:<number
例如,我们有$(ls)
int pfd[2];
pipe(pfd);
switch (fork()) {
case 0:
close(pfd[0]);
dup2(pfd[1], 1 /*stdout*/);
exec('ls', 'ls');
case -1;
// Report the error...
break;
default;
break;
}
wait(nullptr); // Wait until the process is done (it is better to use