bash – 测试makefile文件中是否存在目录

在他的 answer @Grundlefleck解释如何检查目录是否存在。我尝试一些使用这里面一个makefile如下:
foo.bak: foo.bar
    echo "foo"
    if [ -d "~/DropBox" ]; then
        echo "Dir exists"
    fi

运行make foo.bak(给定foo.bar存在)会产生以下错误

echo "foo"
foo
if [ -d "~/DropBox" ]; then
/bin/sh: -c: line 1: Syntax error: unexpected end of file
make: *** [foo.bak] Error 2

我做的解决方法是有一个独立的bash脚本,测试被实现,我从makefile调用脚本。然而,这听起来很麻烦。有没有更好的方法来检查目录是否存在从一个makefile?

使命令(如果shell命令)必须在一行中,或者在多行上使用反斜杠作为行扩展名。所以,这种方法将工作:
foo.bak: foo.bar
    echo "foo"
    if [ -d "~/DropBox" ]; then echo "Dir exists"; fi

要么

foo.bak: foo.bar
    echo "foo"
    if [ -d "~/DropBox" ]; then \
        echo "Dir exists"; \
    fi

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...