我可以將 $SECONDS 放入 bash 腳本中的環境變數嗎?

我可以將 $SECONDS 放入 bash 腳本中的環境變數嗎?

我希望能夠$SECONDS在環境變數中顯示小時、分鐘、秒,因此我只需要$RUNTIME在腳本中的各個位置使用,而不是每次我想使用它時都擁有整個內容。

我不知道使用什麼格式來允許它進入變數:

export RUNTIME="$(($SECONDS / 3600))hrs $((($SECONDS / 60) % 60))min $(($SECONDS % 60))sec"

所以我可以簡單:

echo "The script ran for: $RUNTIME"

謝謝。

答案1

將 RUNTIME 定義為變數不會有幫助,因為它總是輸出一個常數值,也就是定義它時的運行時間。嘗試用 shellfunction代替:

runtime() { 
   printf "%dhrs %dmin %dsec\n" $((SECONDS / 3600)) \
                                $(((SECONDS / 60) % 60)) \
                                $(($SECONDS % 60)); 
}
runtime

並透過“命令替換”來調用/使用它。

相關內容