GNU Make:创建文件的权限问题

GNU Make: permissions issue creating files

我正在使用 Make 从 MySQL 数据库中获取一些数据,填充报告并使用 cron 通过电子邮件发送。我在处理 groff 文件时 运行 遇到权限问题。

品牌:

get: $(DATA)

$(DATA):
        bash $(GET) $(SQL) > $@

format: $(CONTENT)

$(CONTENT): $(DATA)
        bash $(FORMAT) $(DATA) > $@

$(TROFF): $(CONTENT)
        cat $(TEMPLATE) $< > $@
        chmod a+rw $@

$(PS): $(TROFF)
        $(SED) -i '$$ a .TE' $<
        $(TROFF) -ms -t -Tps $< > $@
        chmod a+rw $@

report: $(REPORT)

$(REPORT): $(PS)
        $(PS2PDF) $< >$@
        chmod a+rw $@

如您所见,我已经在 makefile 中对权限进行了试验。这是我在 运行ning make:

时得到的错误
/home/automation/scripts/nancy_list/reports/2015-08-11.roff -ms -t -Tps /home/automation/scripts/nancy_list/reports/2015-08-11.roff > /home/auto
/bin/sh: 1: /home/automation/scripts/nancy_list/reports/2015-08-11.roff: Permission denied
make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Error 126

因此它成功生成了 roff 但无法处理它 -- 后记作为一个空文件出现。我以前用 Make 做过类似的项目 -- 在权限方面有什么新的东西吗?

TROFF 被错误地设置为 /usr/bin/troff 而不是您生成的 troff 文件。

您正在尝试执行生成的文件。