Наблюдение 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
В ударе,
set START_TIME = 1475614806
наборы $1
к START_TIME
, $2
к =
, и $3
к числу. Синтаксис присвоения
START_TIME=1475614806
Никакой set
, не пробелы.
Вы не используете 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