我想测量make文件中每个构建项目的时间,我只是在下面尝试,为什么它不起作用?
mytest: $(info 'Now time is $(date --iso=seconds)')
日期不打印,只打印
'Now time is '。什么可能是错的?
def get_permission_object(permission_str):
app_label, codename = permission_str.split('.')
return Permission.objects.filter(content_type__app_label=app_label, codename=codename).first()
def get_users_with_permission(permission_str, include_su=True):
permission_obj = get_permission_object(permission_str)
q = Q(groups__permissions=permission_obj) | Q(user_permissions=permission_obj)
if include_su:
q |= Q(is_superuser=True)
return User.objects.filter(q).distinct()
答案 0 :(得分:5)
没有名为make
的{{1}}函数。如果要调用shell命令,则语法为date
。
在食谱中使用$(shell date)
并不是特别优雅;该函数不会产生任何对传递给shell有用的东西。您可能只是寻找
$(info)
(无法找到mytest:
date +"Now time is +%FT%T%z"
正确记录;从此博客获取定义:http://nixscripts.blogspot.com/2010/07/hidden-arguments-easter-egg-or-what.html)
......或者可能效率不高
--iso-seconds
其中双美元符号从Make中转义美元符号,以便您将命令替换传递给shell。
只是指出显而易见的,很遗憾Make使用的语法与shell的命令替换语法非常相似。在Make内部,您使用mytest:
printf 'Now time is %s\n' "$$(date --iso-seconds)"
或$(shell command)
将$$(command)
传递给shell。前者在纯Make片段中有意义(command
中的变量定义等);后者仅适用于食谱。