bash スクリプトの環境変数に $SECONDS を入れることはできますか?

bash スクリプトの環境変数に $SECONDS を入れることはできますか?

環境変数で時間、分、秒を表示できるようにしたいのですが、そうすれば、毎回すべてを使用するのではなく、スクリプト内のさまざまな場所で$SECONDSのみ使用する必要があります。$RUNTIME

変数に入れるためにどのようなフォーマットを使用すればよいかわかりません。

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

つまり、私は単純に次のようにすることができます:

echo "The script ran for: $RUNTIME"

ありがとう。

答え1

RUNTIME を変数として定義しても、常に定義されたときのランタイムの定数値が出力されるため役に立ちません。function代わりにシェルを試してください:

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

そして、「コマンド置換」で呼び出し/使用します。

関連情報