这是一个Makefile one-liner,它将时间戳作为16位十六进制整数返回:
DAY := $(shell date +%u)
HOUR := $(shell date +%H)
MINUTE := $(shell date +%M)
TIMESTAMP := $(shell perl -e 'printf "%04X", ($(USER2)<<14)|($(DAY)<<11)|($(HOUR)<<6)|$(MINUTE)')
大部分时间都可以使用。但是,如果我现在运行它date
会返回一小时的09
,并且脚本会抱怨:
Illegal octal digit '9' at -e line 1, at end of line
有关如何解决此问题的任何想法?感谢。
答案 0 :(得分:0)
通过引用将数字文字转换为字符串。这将与bitshift运算符一起做正确的事。
"$(USER2)"<<14