在Perl十进制操作数中删除前导零?

时间:2013-07-16 08:37:09

标签: perl shell makefile

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

有关如何解决此问题的任何想法?感谢。

1 个答案:

答案 0 :(得分:0)

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

"$(USER2)"<<14