Eu estava passando por um tutorial e lá me deparei com um comando:
printf "%(%s)T"
A saída deste comando é:
1454299615
Alguém poderia me dizer qual é esse comando e qual o resultado?
command-line
bash
rtecxs
fonte
fonte
printf
um construtor?/usr/bin/printf
no Ubuntu 14.04 dá um erro:printf: %(: invalid conversion specification
. Se você estiver usandobash
. Tenteman bash
a documentação interna.Respostas:
É uma maneira de expressar a hora formatada
printf
.O formato é:
Onde
FORMAT
é definido porstrftime(3)
.Portanto, para obter o tempo da época (tempo em segundos desde 1970-01-01 00:00:00 UTC), precisamos do
strftime(3)
formato%s
:Observe que você também precisa
\n
adicionar uma nova linha no final, poisprintf
(ao contrárioecho
) não a adiciona por padrão.Exemplo:
Por uma questão de integridade, você também pode usar o
date
comando de umastrftime(3)
maneira formatada semelhante para obter o tempo:NOTA : Este comportamento é específico para
bash
'seksh
' s built-in funçãoprintf
, e não trabalha com/usr/bin/printf
,csh
ezsh
built-ins.fonte
printf(1)
página de manual.printf
é um incorporado aqui (embora a um externa tem o mesmo comportamento) .. verificaçãohelp printf
..