You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bash函数实现根据参数数量生成链式grep命令

实现ignore Bash过滤函数

下面是符合需求的ignore函数实现,兼顾易用性和安全性(避免eval带来的风险):

ignore() {
    # 无参数时直接回显输入内容
    if [ $# -eq 0 ]; then
        cat
        return
    fi

    # 第一个过滤规则处理标准输入
    grep -iv -- "$1"
    shift

    # 依次追加后续过滤规则,自动形成管道链
    for pattern in "$@"; do
        grep -iv -- "$pattern"
    done
}

功能说明

  • 接收任意数量的参数,每个参数作为一个过滤关键词
  • 单个参数时,仅执行grep -iv 参数过滤输入内容
  • 多个参数时,自动生成grep -iv 参数1 | grep -iv 参数2 | ...的链式过滤效果
  • 使用--标记参数结束,避免关键词以-开头时被当作命令选项解析
  • 无参数时原样返回输入内容,避免误过滤

使用示例

apt-cache search apache2 | ignore doc lib

这条命令会从apt-cache search apache2的结果中,过滤掉包含doc或lib的行。

内容的提问来源于stack exchange,提问作者Michal D.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:41:31