如何隐藏从 Makefile 脚本运行的命令并仅显示输出?

如何隐藏从 Makefile 脚本运行的命令并仅显示输出?

我有一个 Makefile 脚本,其中的任务包含 rsync 语句,当我运行该脚本时,它会输出实际的 rsync 命令和来自 rsync 命令的响应。我想隐藏命令并仅显示响应,或者如果可能的话设置 rsync 命令的样式。如何做到这一点?

参见下面的代码,我已设法对其中的一些进行样式化,如您所见。(仅供参考:我省略了一些任务等,是的,我知道这是一些老派的东西:))

# Load environment variables from .env file
include .env

# Define ANSI colors
GRAY=\033[0;37m
NC=\033[0m

# Define default target
.PHONY: deploy
deploy:
    @echo "

答案1

有多种方法可以在 makefile 中“静默”运行命令。

  1. 在特定命令前加上前缀@,例如:(@rsync -azP ...您已经使用这些@echo命令完成了此操作)。

  2. 将特殊目标添加.SILENT到你的 makefile 中,例如:

    # Define default target
    .SILENT:
    .PHONY: deploy
    deploy:
    
  3. make使用-s或参数运行--silent

看这里了解更多信息。

相关内容