假设我有类似的东西
.PHONY: kill-server
kill-server:
kill -9 $(lsof -t -i :9000)
为什么它不起作用,我该如何解决?
您可以在makefile:中通过管道将lsof
传输到xargs
# Makefile - Version 1
# Send kill to server
kill-server:
lsof -t -i :9000| xargs kill -9
悲痛万分。太混乱了。
很简单:$
制作起来很特别。它引入了make变量。如果您编写了一个配方(这是shell脚本(,并且希望shell看到$
,则必须对其进行转义,这样make就不会将其扩展为make变量。这完全是微不足道的,只需在任何想将$
传递给shell的地方编写$$
:
.PHONY: kill-server
kill-server:
kill -9 $$(lsof -t -i :9000)
就这样,完成了。