如何在 pythonanywhere 的 makefile 中写入反斜杠字符

How to write a backslash character in makefile for pythonanywhere

我需要在 makefile 中连接一个字符串以获得此输出:

username$databasename

用于自动化 django 项目的构建过程。

我发现 $ 符号在 makefile 中必须是 $$ 所以这就是我现在拥有的:

MYVAR = username$$databasename

我的问题是字符串中的反斜杠!据我所知,通常反斜杠被转义的 \ 在这里不起作用,因为它用于 Makefiles 的换行功能。

您可能想尝试 myvar = username\"$$"databasename

rule : 
  @echo $(myvar)

这输出 username$databasename.

如果您认为双引号很难看,单引号也可以:myvar = username\'$$'databasename.


如果 databasename 存储在您要访问的环境变量中,请使用:

myvar = username\$$"$$databasename"

例如,myvar = username\$$"$$USER" 会为我输出 username$guiltydolphin

在 Makefile 中,有时我想包含 python 的脚本或片段 比如说 Latex 文档中的代码。

我将 BACKSLASH 定义为 Makefile 宏,然后在 echo 语句中使用它。

BACKSLASH = '\'

reactance_sim: reactance.py
        echo "{"$(BACKSLASH)tiny           >  reactance_sim
        echo $(BACKSLASH)"begin{verbatim}" >> reactance_sim
        cat reactance.py                   >> reactance_sim
        echo $(BACKSLASH)"end{verbatim}"   >> reactance_sim
        echo "}"                           >> reactance_sim
        cp reactance_sim reactance_simulation.tex
        # vi reactance_simulation.tex

上面的 Makefile 代码将使用 reactance.py 文件和 如果需要,创建一个 reactance_sim 文件,其中包含 其中的反斜杠(在本例中是 Latex 命令,如 \tiny 和 \begin)