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

Debian 12下Makefile如何抑制任务输出?除-s外还有其他方法吗?

解决Makefile中抑制命令输出的方法

你有多种方式可以抑制命令的输出,不需要每次执行make时手动加重定向参数:

  • 直接在命令后添加重定向:修改Makefile中的命令,将标准输出和错误输出直接导向/dev/null,执行make todo时就不会看到任何输出:

    todo:
        su - user -c "/mypath/dothis" > /dev/null 2>&1
    

    若只想抑制标准输出、保留错误输出,仅写> /dev/null即可;反之要保留标准输出、抑制错误输出则用2> /dev/null。

  • 结合@隐藏命令本身+重定向:如果同时不想让make打印执行的命令(类似-s选项的效果),可在命令前加@符号,再配合重定向:

    todo:
        @su - user -c "/mypath/dothis" > /dev/null 2>&1
    
  • 用变量统一控制输出:如果有多个命令需要控制输出,可定义变量实现统一修改:

    # 默认抑制输出,调试时可改为 QUIET := 取消抑制
    QUIET := > /dev/null 2>&1
    
    todo:
        su - user -c "/mypath/dothis" $(QUIET)
    

另外需要注意,-s选项或.SILENT目标仅能隐藏make打印的命令本身,无法抑制命令执行产生的输出,处理命令输出仍需依靠重定向方式。

内容的提问来源于stack exchange,提问作者user2239318

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:42:12