Skip to main content
 首页 » 编程设计

python之如何在 Makefile 中编写内联文件

2025年05月04日18youxin

我见过一些 shell 脚本,它们通过在同一个 shell 脚本中写入文件的内容来传递文件。例如:

if [[ $uponly -eq 1 ]]; then 
    mysql $tabular -h database1 -u usertrack -pabulafia usertrack << END                                                                                            
 
    select host from host_status where host like 'ld%' and status = 'up';                                                                                           
 
END 
     exit 0 
fi 

我已经能够做类似的事情了:

python << END 
print 'hello world' 
END 

如果脚本的名称是 myscript.sh,那么我可以通过执行 sh myscript.sh 来运行它。我得到了我想要的输出。

问题是,我们可以在 Makefile 中做类似的事情吗?我环顾四周,他们都说我做了类似的事情:

target: 
        python @<< 
print 'hello world' 
<< 

但这行不通。

这是我一直在寻找的链接:

http://www.opussoftware.com/tutorial/TutMakefile.htm#Response%20Files

http://www.scribd.com/doc/2369245/Makefile-Memo

请您参考如下方法:

你可以这样做:

define TMP_PYTHON_PROG 
print 'hello' 
print 'world' 
endef 
 
export TMP_PYTHON_PROG 
target: 
    @python -c "$$TMP_PYTHON_PROG" 

首先,您要使用 define 和 endef 定义一个多行变量。然后您需要将它export 到 shell,否则它会将每个新行视为一个新命令。然后使用 $$ 重新插入 shell 变量。