假设我在makefile中定义了一个变量"ABC=0"。现在,当makefile运行时,用户会被问到一个问题"它是什么类型的程序?",如果用户输入"pq",则将makefile变量"ABC"更新为1,否则保持原样。
Make不是为用户交互而设计的,但它可以将该任务委托给脚本。
考虑这个脚本:
#!/bin/bash
echo What type of program is it?
read
if [ "$REPLY" = pq ]; then
echo 1
else
echo 0
fi
Make可以执行这个脚本,收集输出并将其分配给一个变量。唯一的技巧是,它将收集所有的输出,因此任何不属于的东西(例如"它是什么类型的程序"(都应该从脚本中删除:
#!/bin/bash
read
if [ "$REPLY" = pq ]; then
echo 1
else
echo 0
fi
并由makefile处理:
$(info What type of program is it?)
ABC := $(shell ./ask.bsh)