我想实现的目标:
我有什么:
/ docker / images / Makefile(带有可执行标志):
#!/usr/bin/make -f
default: ...
...
我能做
cd /docker/images
./Makefile
但是,我想做些什么:
cd /somewhere/else
/docker/images/Makefile
我尝试了什么:
man make
声明,我可以设置--directoy <dir>
参数。但是,shebang #!/usr/bin/make --directory=/docker/images -f
无效:
$ cd /somewhere/else
$ /docker/images/Makefile
make: *** =/docker/images -f: Datei oder Verzeichnis nicht gefunden. Schluss.
(找不到文件或目录)
任何猜测?我正在使用带有GNU Make 4.1的Devuan ASCII]
我看过related thread不能解决我的问题。
当我们放#!/usr/bin/make --directory=/docker/images -f
时
并运行/docker/images/Makefile
相当于运行:
/usr/bin/make "--directory=/docker/images -f" /docker/images/Makefile
一种解决方案是委派给第二行:
#!/home/debian/bin/run_second_line
# /usr/bin/make --directory=/docker/images -f
default: ...
...
在/ home / debian / bin / run_second_line中:
#!/bin/bash
get_second_line=$(awk 'NR == 2{print}' "$1")
exec bash -c "${get_second_line#?} $1"