2013-07-16 36 views
0

這裏有一個Makefile文件的一行返回時間戳作爲16位十六進制整數:刪除Perl小數運算數中的前導零?

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

通過引用將數字文字轉換爲字符串。這將與移位操作符一起做正確的事情。

"$(USER2)"<<14 
+0

謝謝 - 我會在明天09:00檢查! – EML