看到了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
答案1
在 Bash 中,
set START_TIME = 1475614806
设置$1
为START_TIME
、$2
和=
为$3
数字。赋值的语法是
START_TIME=1475614806
不set
,没有空格。
答案2
你不需要使用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