【发布时间】:2015-01-22 13:54:03
【问题描述】:
我正在尝试在 makefile 的条件中执行命令。
我让它在 shell 中工作:
if [ -z "$(ls -A mydir)" ]; then \
echo "empty dir"; \
else \
echo "non-empty dir"; \
fi
但如果我在 makefile 中尝试,"$(ls -A mydir)" 会扩展为空,无论asdf 是否为空:
all:
if [ -z "$(ls -A mydir)" ]; then \
echo "empty dir"; \
else \
echo "non-empty dir"; \
fi
ls 命令没有像我预期的那样扩展:
$ mkdir mydir
$ make
if [ -z "" ]; then \
echo "empty dir"; \
else \
echo "non-empty dir"; \
fi
empty dir
$ touch mydir/myfile
$ make
if [ -z "" ]; then \
echo "empty dir"; \
else \
echo "non-empty dir"; \
fi
empty dir
$ ls -A mydir
myfile
如何使命令在条件内工作?
【问题讨论】: