我试图从一个makefile写一个规则文件(makefile),我用echo命令来做, 但是当我拿着$来做这件事的时候,我不知道该怎么做。在
我试过了:
$(shell echo -e "#!/usr/bin/make -f \nPYTHON3=\"$(shell py3versions -vr)\"" >>text.txt
但我收到了一条错误信息:
^{pr2}$我要写入规则文件的代码:
#!/usr/bin/make -f
PYTHON3=$(shell py3versions -vr)
%:
dh $@ python3 --buildsystem=python_distutils
override_dh_auto_build: $(PYTHON3:%=build-python%)
......
任何人都可以给我一些建议,我应该使用哪个命令来创建这样的文件? 如果使用echo命令,如何输入$?在
更新我的情况:
我正在尝试构建一个python debian包。上面显示的规则文件就是构建它的方法。(当然在调用其他函数之后,比如
python setup.py sdist
以及
py2dsc,
然后调用这个规则(称为rules而不是makefile)文件来构建debian包。在
规则文件可以由py2dsc命令自动生成,但我需要修改它以使其适用于不同版本的python(例如python2.*和python3.*)。所以我想从makefile(它将调用python)编写规则文件设置.pysdist和py2dsc以及此规则文件),用于python2.*和python3.*。在
现在我面临一个问题:如何将shell命令以这种方式写入规则文件。谢谢!在
使用两个美元符号(
$$
)从make中转义美元符号:顺便说一句,你不应该用
$(shell ...)
来做这个我不认为。您没有给出makefile的完整示例,但是如果您的echo
命令是配方的一部分,请直接编写它,不要使用$(shell ...)
。在另外请注意:
echo -e
不是可移植的,不能在所有POSIX系统上工作。我建议您改用printf
,它可以做同样的事情,并且是可移植的。在相关问题 更多 >
编程相关推荐