Aritmética com variáveis

2

Estou tentando fazer aritmética, pois atribuo um valor a uma variável. Quando o script chega ao end_day ele não pode fazer as contas, e quando eu testo no terminal ele simplesmente retorna a expressão. O que preciso fazer para obter um resultado atribuído às variáveis?

Aqui faz parte do script, $fhour vem de outro lugar e é simplesmente um número de dois dígitos.

#Date variables
export start_year=$(date -u +%Y)
export start_mon=$(date -u +%m)
export start_day=$(date -u +%d)
export start_hour=$fhour
export end_year=$(date -u +%Y)
export end_mon=$(date -u +%m)
export end_day=${$start_day+(((($start_day*24)+84)/24)-((($start_day*24)+84)%24))}
export end_hour=${($start_day*24+84)%24}

Obrigado por qualquer ajuda!

    
por WxPilot 07.02.2014 / 23:39

1 resposta

2

Seguindo o guia do Cyberciti para bash arithmetic você não está usando o método correto. Para fazer operações aritméticas, este é o formato:

  

$ ((expression))

Então, no seu caso, essa seria a atribuição de variável correta:

export end_day=$(( $start_day+(((($start_day*24)+84)/24)-((($start_day*24)+84)%24)) ))
export end_hour=$(( ($start_day*24+84)%24 ))

NOTA: isso precisa ser testado, não tenho certeza se os resultados estão corretos.

    
por Lucio 07.02.2014 / 23:57