Sintaxe correta para inserir a variável de data no código de cálculo da data

0

No meu script, o seguinte código produz com êxito uma variável de registro de data e hora para $ n no formato 2016-04-28T15: 47: 48

for n in $(perl parsetime.pl | sed "s/.....$//")

do
echo $n

o resultado é:

2016-04-28T15:47:48

No entanto, agora quero usar essa variável para calcular o tempo 15 minutos antes. Alguém me forneceu a sintaxe para produzir o registro de data e hora no formato correto (que funcionou) - isso foi conseguido assim:

/opt/bin/date --date '-15 minutes 2016-04-28T15:39:27' "+%Y-%m-%dT%H:%I:%S"

o resultado é:

2016-04-28T09:09:27

No entanto, meu problema agora é que, quando tento usar a variável $ n em vez de escrever o timestamp real, recebo uma mensagem como esta e recebo uma mensagem de erro.

for n in $(perl parsetime.pl | sed "s/.....$//")

do

/opt/bin/date --date '-15 minutes "$n"' "+%Y-%m-%dT%H:%I:%S" 

resultado:

/opt/bin/date: invalid date '-15 minutes "$n"

O que estou fazendo de errado? Como posso incorporar a variável $ n no código corretamente?

    
por neilH 28.04.2016 / 17:58

1 resposta

1

O problema está aqui:

'-15 minutes "$n"'

As aspas simples param a substituição de variável, então você está literalmente passando "$n" em vez do conteúdo da variável.

Escreva:

/opt/bin/date --date "-15 minutes $n" '+%Y-%m-%dT%H:%I:%S'

em vez disso.

    
por 28.04.2016 / 18:14