0

这是一个 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

有想法该怎么解决这个吗?谢谢。

4

1 回答 1

0

通过引用将数字文字转换为字符串。这将与位移运算符一起做正确的事情。

"$(USER2)"<<14
于 2013-07-16T09:05:57.640 回答