1. ホーム
  2. bash

[解決済み] bashスクリプトでtimestamp変数を作成する

2022-03-19 12:40:17

質問

シェルスクリプトでタイムスタンプ変数を作成し、ロギングを少し簡単にしようとしています。スクリプトの最初にこの変数を作成し、次のコマンドを発行するたびに現在の時刻を表示させたいと思います。 echo $timestamp . しかし、思ったより難しいことがわかりました。以下は、私が試したいくつかのことです。

timestamp="(date +"%T")" echo がプリントアウトします。 (date +"%T")

timestamp="$(date +"%T")" echo は、変数が初期化された時刻を表示します。

その他に試したことは、ほんの少しのバリエーションで、これ以上うまくいきませんでした。どなたか、私がやろうとしていることを達成する方法をご存じないでしょうか?

解決方法は?

固定変数が定義された時点の時刻ではなく、現在のタイムスタンプを取得するためには、関数と ではなく 変数です。

#!/bin/bash

# Define a timestamp function
timestamp() {
  date +"%T" # current time
}

# do something...
timestamp # print timestamp
# do something else...
timestamp # print another timestamp
# continue...

によって与えられるフォーマットが気に入らない場合は %T 指定子で指定できる他の時間変換指定子を組み合わせることができます。 date . GNUの場合 date これらの指定子の完全な一覧は、こちらの公式ドキュメントを参照してください。 https://www.gnu.org/software/coreutils/manual/html_node/Time-conversion-specifiers.html#Time-conversion-specifiers