Estou tentando criar uma variável de carimbo de data / hora em um script de shell para facilitar um pouco o log. Quero criar a variável no início do script e imprimir a hora atual sempre que eu emitir echo $timestamp
. Está provando ser mais difícil do que eu pensava. Aqui estão algumas coisas que eu tentei:
timestamp="(date +"%T")"
o eco é impresso (date +"%T")
timestamp="$(date +"%T")"
eco indica a hora em que a variável foi inicializada.
Outras coisas que tentei são apenas pequenas variações que não funcionaram melhor. Alguém sabe como realizar o que estou tentando fazer?
echo "$(timestamp): something happened"
.date +"%Y-%m-%d_%H-%M-%S"
Se você deseja obter o timestamp unix, precisará usar:
%T
lhe dará o tempo certo; igual a%H:%M:%S
(via http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/ )fonte
date
. No entanto, também votei na resposta "correta". Eu não estava procurando por isso, mas é uma resposta melhor para a pergunta original e também é realmente útil para mim.fonte
echo $(date +"%Y-%m-%dT%T.%3N%z")
No entanto eu não posso fazê-lo funcionar em um terminal Mac. Como fazer o mesmo no Mac. GraçasO formato ISO 8601 (
2018-12-23T12:34:56
) é mais legível que o registro de data e hora do UNIX. No entanto, em alguns sistemas operacionais, você não pode ter:
os nomes dos arquivos. Portanto, eu recomendo usar algo assim:Você pode usar o seguinte comando para obter o registro de data e hora neste formato:
Este é o formato que eu já vi muitos aplicativos usarem. Outra coisa interessante é que, se os nomes dos arquivos começarem com isso, você poderá classificá-los em ordem alfabética e eles serão classificados por data.
fonte
TZ=UTC date +...
pode tornar isso mais portátil usando UTC timestampEstou usando o ubuntu 14.04.
A maneira correta no meu sistema deve ser
date +%s
.A saída de
date +%T
é como12:25:25
.fonte
Use substituição de comando:
fonte
Você pode usar
Isso oferece no formato
2014-02-01 15:12:35-05:00
Os caracteres back-tick (
`
) farão com que o que está entre eles seja avaliado e tenha o resultado incluído na linha.date --help
tem outras opções.fonte
touch $timestamp
, produzirá dois arquivos.Versões recentes de
bash
não requerem chamada para o programa externodate
:%(...)T
usa o argumento correspondente como um registro de data e hora do UNIX e o formata de acordo com ostrftime
formato -style entre parênteses. Um argumento-1
corresponde ao horário atual e, quando nenhuma ambiguidade ocorreria, pode ser omitido.fonte
E para os meus colegas europeus, tente usar o seguinte:
fornecerá um formato do formato: "15-02-2020_19-21-58"
Você chama a variável e obtém a representação de string como esta
fonte
srand sem um valor usa o timestamp atual com a maioria das implementações do Awk.
fonte