我正在尝试运行:
SHELL =/usr/bin/tcsh
foo:
@foreach i ( "a" "b" "c")\
echo $$i\
end
但是我收到了这个错误
i: Undefined variable.
make: *** [foo] Error 1
我发现了这个question and answer,但看起来它使用的是bash,而不是tcsh。
答案 0 :(得分:1)
简短的回答是,你不应该使用tcsh
,至少不要使用makefile。我个人的观点是,现在是csh
的高潮时期,所有衍生品都被归为历史垃圾箱。但它们绝对是are not usable在makefile中。
从该链接注意例如:您不能使用分号在csh中组合多行结构。
除了单行脚本存在的问题之外,它们不能与make的并行作业服务器支持一起使用,因为它们使用文件描述符做了很多事情。
答案 1 :(得分:1)
SHELL = /usr/bin/tcsh
# but we can't use its loop constructs as they're multi-line
foo:
@sh -c 'for i in a b c; do echo $$i; done'