Я гуглил по этому поводу, но не могу понять, почему Bash жалуется на следующий код, чтобы проверить, существует ли каталог:
test.mk
#!/bin/bash
MYDIR="dl"
all:
if [ ! -d $MYDIR ]; then
#if [ ! -d "${MYDIR}" ]; then
#if [ ! -d ${MYDIR} ]; then
#Here
fi
make -f test.mk
if [ ! -d YDIR ]; then
/bin/sh: Syntax error: end of file unexpected
make: *** [all] Error 2
Кто-то знает, почему это не получается? И почему он вызывает / bin / sh вместо / bin / bash? Спасибо.
Редактировать: в отличие от Bash, make не поддерживает многострочный блок. Вот рабочий код:
MYDIR="dl"
all:
if [ ! -d ${MYDIR} ]; then\
echo "Here";\
else\
echo "There";\
fi