什么呢@D意味着shell脚本

pre*_*rex 3 shell

我有一个代码

   echo -e "\\n" "=====  Making: $(@D)\n";\
    if [ ! -d $(@D) ]; then \
            mkdir $(@D); \
    else \
            if [ -e $(@D)\PackageBuild.error ]; then \
                    rm $(@D)\PackageBuild.error;\
            fi; \
Run Code Online (Sandbox Code Playgroud)

我不确定这个@D在做什么。有人可以帮我吗

D. *_*ika 8

通常$(command)执行命令,并替换$(command)为命令的输出。因此,必须有一个名为@D的文件,该文件是可执行文件并且位于搜索路径中。

但是,如果这不是shell脚本,而是make文件,则意味着:

$(@D)
Run Code Online (Sandbox Code Playgroud)

目标文件名的目录部分,除去斜杠。如果值$@dir/foo.o$(@D)dir.如果$@不包含斜杠,则为该值。