0
我有即時通訊裝入變量使用計算和顯示日期的差異
a=`date +%s`
b=`date +%s`
兩個日期,我想知道時間如差00:00:10等等,我這樣做是使用
計算之間的區別diff=$((b-a))
echo "$((diff/3600)):$(((diff/60)%60)):$((diff%60))"
但輸出是0:0:07,我怎麼能將它轉換成2點=在00:00:07?
我有即時通訊裝入變量使用計算和顯示日期的差異
a=`date +%s`
b=`date +%s`
兩個日期,我想知道時間如差00:00:10等等,我這樣做是使用
計算之間的區別diff=$((b-a))
echo "$((diff/3600)):$(((diff/60)%60)):$((diff%60))"
但輸出是0:0:07,我怎麼能將它轉換成2點=在00:00:07?
如果字符串的長度爲1,則與增值零
hour=$((diff/3600))
min=$(((diff/60)%60))
sec=$((diff%60))
[[ ${#hour} == 1 ]] && hour="0$hour" || hour="$hour"
[[ ${#min} == 1 ]] && min="0$min" || min="$min"
[[ ${#sec} == 1 ]] && sec="0$sec" || sec="$sec"
echo "$hour:$min:$sec"
輸出:
00:00:16
如果我得到這個正確的,這是語法測試命令,但到底是什麼$ {#小時}(hasthag)和&&和||操作數在unix中意味着什麼?看起來像其他語言不一樣=和,或者 – Darlyn
#將返回變量的長度。 &&,||是三元運算符的簡寫形式,如if ... else – loganaayahee
$ {#varname}是變量的長度,&&,||用於bash中三進制運算符的排序形式。如果條件爲真,則返回值爲0,否則返回值 – loganaayahee