Нуждаюсь в помощи с этим сценарием оболочки, производимым как нуль

Наблюдение FINAL_TIME = 0, помогите мне

set START_TIME = 1475614806
set END_TIME = $(date +%s)
set FINAL_TIME = $((END_TIME - START_TIME))
printf "%dh %dm %ds" "$((FINAL_TIME/3600))" "$((FINAL_TIME%3600/60))" "$((FINAL_TIME%60))" > reports/tle_top.duration.txt
0
задан 5 October 2016 в 00:16

2 ответа

В ударе,

set START_TIME = 1475614806

наборы $1 к START_TIME, $2 к =, и $3 к числу. Синтаксис присвоения

START_TIME=1475614806

Никакой set, не пробелы.

6
ответ дан 28 September 2019 в 11:28

Вы не используете set для присвоения переменных Bash. Вы просто пишете variable_name=value, но примечание, там может быть никакое пространство вокруг = оператор!

Для чтения значения переменной Вы обычно должны (как @choroba правильно указанный, это не необходимо внутренний $(( ... )) арифметические выражения), пишут $ перед его именем, как $variable_name.

START_TIME=1475614806
END_TIME=$(date +%s)
FINAL_TIME=$(($END_TIME - $START_TIME))
printf "%dh %dm %ds" "$(($FINAL_TIME/3600))" "$(($FINAL_TIME%3600/60))" "$(($FINAL_TIME%60))" > reports/tle_top.duration.txt
1
ответ дан 28 September 2019 в 11:28

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

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