use*_*571 3 shell makefile pipe
我需要帮助:以下命令行不起作用
TESTS := $(shell cat test_cases_file | egrep -v ^\s*(#|$) )
all: $(TESTS)
Run Code Online (Sandbox Code Playgroud)
当我启动时:
make all
Run Code Online (Sandbox Code Playgroud)
我收到类似“shell 命令调用未完成”之类的错误。
您在egrep
参数中缺少引号。如果我make
我也会相信 # 是评论的开头。
显然,简单地添加引号是没有帮助的,您还需要转义#
。
编辑:实际上$
也必须转义,如果是的话,make
可以使用$$
尝试这个:
TESTS := $(shell egrep -v '^\s*(\#|$$)' test_cases_file)
all: $(TESTS)
Run Code Online (Sandbox Code Playgroud)
最后,你真的不需要丢弃空行 - 这不会有什么坏处:
TESTS := $(shell egrep -v '^\s*\#' test_cases_file)
all: $(TESTS)
Run Code Online (Sandbox Code Playgroud)