我需要将执行值写入Makefile中的一个变量以供进一步使用,但是由于某种原因它总是一个空字符串,我尝试了不同的方法,我只是在浪费我的时间,我不明白什么问题是因为命令本身在控制台中工作,但变量始终为空,声明示例:
#VARIABLES
var = $(echo $(date +%s | md5sum | head -c${1:-32};echo ;))
test:
echo "$(var)";
如果上面的代码不是一个工作选项,那么也许有一个选项如何编写一个模拟来生成一个可以在 Makefail 中工作的唯一哈希,但我当然想弄清楚为什么上面的代码在make 命令被执行...
如果目标只是生成一个随机字符串,那么您可以在这里查看答案https://unix.stackexchange.com/questions/230673/how-to-generate-a-random-string
如果你只是修复你的代码,它会是这样的:
该表达式
${1:-32}是bash 中的默认替换,在 Makefile 中没有任何意义,所以我只是将其替换为默认值 -32。