假设我想尝试以下几点:
SHELL:=ssh virtual-machine
# or: SHELL:=ssh virtual-machine bash
.PHONY:
foo:
echo "foo"
# on the command line
make foo
# returns
Unknown cipher type 'echo "foo"'透露“它起作用了!”,但make正在执行以下操作:
ssh virtual-machine -c "echo \"foo\""了解到这是一个涉及make和ssh的XY问题,我的解决方案中立的问题是:
如何使用make**?**正确地生成远程子subshell行为?
而且,理解这可能是个坏主意,或者有一个更好的方法,我的具体问题是:
有什么方法可以自定义make执行SHELL 变量的方式吗?
发布于 2021-01-08 18:05:07
引用GNU制造手册,第5.3.2节(选择Shell):
用作SHELL的程序是从变量shell中提取的。如果在makefile中没有设置此变量,则使用程序/bin/sh作为shell。传递给shell的参数来自变量.SHELLFLAGS。.SHELLFLAGS的默认值通常是-c,或者是符合POSIX模式的-ec。
因此,将.SHELLFLAGS设置为空值应该可以执行您想做的事情。
https://stackoverflow.com/questions/65633894
复制相似问题