Makefile作为shebang的可执行脚本?

Ale*_*huk 20 makefile shebang

是否可以创建一个可由make解释的可执行脚本?

我试过这个:

#!/usr/bin/env make --makefile=/dev/stdin

main:
        @echo Hello!
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 挂起直到按下Ctrl-c.

Fle*_*exo 25

#!/usr/bin/make -f

main:
        @echo Hello World!
Run Code Online (Sandbox Code Playgroud)

通常是标准make文件中所需的全部内容.文件名隐式传递为最后一个参数./dev/stdin这是(通常)tty.env如果有理由你可以完成整个事情,但通常没有必要.

ajw@rapunzel:~/code/videocc/tools > vi Makefile                       
ajw@rapunzel:~/code/videocc/tools > chmod a+x Makefile         
ajw@rapunzel:~/code/videocc/tools > ./Makefile                 
Hello World!
Run Code Online (Sandbox Code Playgroud)

  • 当您运行/ usr/bin/env for#时,您不能依赖于使用选项!翻译.如果你不想硬编码路径(并且你没有使用OSX),那么使用`#!make -f`为第一行. (3认同)

Ste*_*ski 5

以下添加了一个间接级别,但它是我为不称为“makefile”的自执行 makefile 提出的最佳解决方案:

#!/bin/sh
exec make -f- "$@" << 'eof'

.PHONY: all
all:
    @echo 'hello world!'
Run Code Online (Sandbox Code Playgroud)

我正在尝试收集 #! 每种语言/程序的 env hacks在这里