Como imprimir uma data e hora concatenadas em segundos

1

Como posso imprimir a data a seguir 20150405 12:35:12 em segundos

cur_date=20150405
cur_time=12:35:12
cur_datetime=20150405 12:35:12

isto é o que estou fazendo:

    cur_datetime=$cur_date' '$cur_1st_time
    echo "PDT $prev_datetime CRT $cur_datetime"

    cur_date_SEC='date -d "$(cur_datetime)" +%s'
    prev_date_SEC='date -d "$(prev_datetime)" +%s'
    echo "CD:$cur_date_SEC PD:$prev_date_SEC"

Eu também tentei

'date -d "$prev_datetime" +%s'
'date -d "${prev_datetime}" +%s'

O que estou fazendo de errado?

    
por 3kstc 25.04.2015 / 08:53

1 resposta

2

Em primeiro lugar,

$cur_date=20150405
$cur_time=12:35:12

deve ser

cur_date=20150405
cur_time=12:35:12

Além disso, não use backticks, eles estão obsoletos. A sintaxe $(...) é mais fácil de ler e pode ser aninhada quando desejada.

Aqui está uma reescrita da parte "cur" do seu código:

#!/usr/bin/env bash

cur_date=20150405
cur_time=12:35:12

cur_datetime="$cur_date $cur_time"
echo "CRT $cur_datetime"

cur_date_SEC=$(date -d "$cur_datetime" +%s)
echo "CD: $cur_date_SEC"

Não vou postar a saída: provavelmente será diferente do que você verá, devido às diferenças de fuso horário.

FWIW, ShellCheck pode ser muito útil ao escrever scripts Bash.

    
por 25.04.2015 / 09:55

Tags