gpt4 book ai didi

linux - 当管道的第一个命令不输出时如何不输出任何内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:02 26 4
gpt4 key购买 nike

我有 2 个命令,我想像这样通过管道传输:command1 |命令 2。当 command1 根本不输出任何内容时,command2 仍然输出。我该如何停止命令 1 |当 command1 不输出任何内容时,command2 不输出?

具体例子:

function find_string_in_file {
find . -iname "*$1*" | xargs ack-grep "$2"
}
alias findag='find_string_in_file'

如果 filename.py 在当前目录或其子文件夹中不存在,则 findag filename.py "some word" 仍然返回与 ack 相同的输出-grep "some word".

最佳答案

管道不是有条件的,因此您不能根据前面阶段的退出状态禁用后面的阶段。对于您的特定示例,您可以修改 find 命令以避免需要管道。

find . -iname "*$1*" -exec ack-grep "$2" '{}' +

如果没有匹配的文件,exec 测试将不会被触发。

关于linux - 当管道的第一个命令不输出时如何不输出任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15044779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com