/bin/sh:@echo:找不到命令

/bin/sh: @echo: command not found

run:
    cd ..; \
    @echo $(shell pwd)

抛出这个:

/bin/sh: @echo: command not found

以下工作,并打印当前目录:

run:
    @echo $(shell pwd)

你知道为什么吗?

正如错误消息所暗示的那样:

/bin/sh: @echo: command not found

未找到的实际命令是@echo,而不是echo。发生此问题是因为 shell 收到下面的单行,因为您正在使用 \.

转义换行符
cd ..; @echo [output of pwd]

您可以将 @ 放在 cd 命令之前:

run:
    @cd ..; \
    echo $(shell pwd)

这样,shell 将收到以下行:

cd ..; echo [output of pwd]