使用 make 作为脚本运行程序的替代方案

使用 make 作为脚本运行程序的替代方案

太长了;博士 make正在为我工​​作,但我正在寻找合适的工具。

我目前正在使用Makefiles 作为我的项目的脚本运行程序。为了标准化每个项目,我只创建一个 makefile,以便我可以编写如下内容:

make setup
make teardown
make execute "SOMETHING"

在这种情况下,setup可能会拉取并部署一堆 docker 容器,teardown可能会清理它们,并对execute容器运行命令。

我不习惯make实际构建具有依赖关系的东西。这让我觉得我只是很老套……但是嘿,到目前为止它已经奏效了。

我不认为make这是完成这项工作的正确工具,但我不知道是否有其他一些常见的二进制文件允许人们运行xyz commandxyz在这种情况下会在哪里制作。我不想为每个项目编写一个新的 bash 脚本,因为在我看来,这通常可读性要差得多。

我不喜欢make吐出的东西:

make: *** No rule to make target FOO. Stop.

这通常是当我滥用make处理参数时(例如make execute "do this in a container")。

有人对一个通用的 UNIX 工具有什么建议吗?它可以让我只指定一些要运行的命令?

答案1

您可以使用这样的脚本做一些简单的事情:

#!/bin/bash                                                                     

function execute {
    echo "Executing $1"
}

case "$1" in
    "setup" )
        echo "Setting up" ;;
    "teardown" )
        echo "Tearing down" ;;
    "execute" )
        shift
        execute "$@"
        ;;
    * )
        echo "Usage: ..."
esac

shell 脚本的常见警告适用(注意变量扩展、错误处理)。

相关内容