2

perl -e を使用して、16 進数 (523cc261) を意味のある日付に変換しています。

perl -e 'my $t=localtime 0x523cc261; print $t . "\n"' 
Fri Sep 20 21:47:13 2013

ただし、上記のコードはプロンプトで値を提供する必要があるため、スクリプトを作成できません。変数に置き換え523cc261てみましたが、機能しません:

b=523cc261
perl -e 'my $t=localtime 0x`echo b`; print $t . "\n"`
Backticks found where operator expected at -e line 1, near "0x`echo b`"
        (Missing operator before `echo b`?)
syntax error at -e line 1, near "0x`echo b`"

523cc261私の質問は、スクリプトで引数を介して 10 進値 ( ) を提供する方法です。

4

2 に答える 2

1

ENV HASH を使用できます。

$ b=523cc261 perl -le 'my $t = scalar localtime hex $ENV{"b"}; print $t;'

別の解決策(少し難読化され$bていますが、シェル変数です):

$ b=523cc261 perl -le 'my $t = scalar localtime hex "'$b'"; print $t;'
于 2013-09-30T23:45:23.900 に答える