Арифметика с переменными

Я пытаюсь сделать арифметику, когда я присваиваю переменной значение. Когда сценарий достигает end_day, он не может выполнять математические вычисления, а когда я проверяю его в терминале, он просто возвращает выражение. Что мне нужно сделать, чтобы получить результат, назначенный переменным.

Вот часть сценария, $fhour происходит из другого места и представляет собой просто двузначное число.

#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}

Спасибо за любую помощь!

2
задан 8 February 2014 в 02:39

1 ответ

Следуя руководству Cyberciti для bash арифметики , вы не используете правильный метод. Для выполнения арифметических операций это формат:

$ ((выражение))

Так что в вашем случае это будет правильное назначение переменной:

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

ПРИМЕЧАНИЕ: это нужно проверить, не уверен, что результаты верны.

0
ответ дан 8 February 2014 в 02:39

Другие вопросы по тегам:

Похожие вопросы: