gpt4 book ai didi

unix - 如何判断 makefile 是否正在从交互式 shell 运行?

转载 作者:行者123 更新时间:2023-12-04 10:02:12 25 4
gpt4 key购买 nike

我有一个 makefile 运行可能需要一段时间的命令。如果构建是从交互式 shell 启动的,我希望这些命令是健谈的,但如果不是(特别是通过 cron)则更安静。类似于(伪代码)的内容:

foo_opts = -a -b -c
if (make was invoked from an interactive shell):
foo_opts += --verbose

all: bar baz
foo $(foo_opts)

这是 GNU make。如果我正在做的事情的细节很重要,我可以编辑问题。

最佳答案

它不是严格确定它是否从交互式 shell 调用,但对于将输出重定向到文件的 cron 作业,此问题的答案与 How to detect if my shell script is running through a pipe? 相同。 :

if [ -t 0 ]
then
# input is from a terminal
fi

编辑:要使用它在 Makefile 中设置变量(在 GNU make 中,即):
INTERACTIVE:=$(shell [ -t 0 ] && echo 1)

ifdef INTERACTIVE
# is a terminal
else
# cron job
endif

关于unix - 如何判断 makefile 是否正在从交互式 shell 运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com