У меня есть следующий фрагмент кода, и я не могу понять, почему он не работает:
test-%:
# this works
case $* in a) echo A;; b) echo B;; esac
# this doesn't
$(eval MY_VAR := \
$(shell case $* in a) echo A;; b) echo B;; esac ))
echo $(MY_VAR)
Вывод:
$ make test-a
bash: -c: line 2: syntax error: unexpected end of file
case a in a) echo A;; b) echo B;; esac
A
echo B;; esac ))
bash: -c: line 0: syntax error near unexpected token `;;'
bash: -c: line 0: `echo B;; esac ))'
makefile:277: recipe for target 'test-a' failed
make: *** [test-a] Error 1
Я подозреваю, что мне нужно избежать некоторыхперсонажи, но я не знаю, какие.Я попытался \), который исправил подсветку синтаксиса в vim, но это все равно не сработало.