bash 端末[\t](時間)と「日付」が同じ時間帯にありません。

bash 端末[\t](時間)と「日付」が同じ時間帯にありません。

私の.bashrcファイルでプロンプトを表示する方法を設定します。私の.bashrcは.bash_profileから派生しました。 .bashrc ファイルのコマンドは次のとおりです。

PS1='[\t] \u@\h is $PWD :: '

私はtzselectを使用してユーザーのタイムゾーンをGMT + 0に切り替えます。私が経験している問題は、dateコマンドを使用するとGMT時間(満足)を取得しますが、ターミナルプロンプトはまだシステム時間(ログインおよびログアウト後も)なので満足できません。と一緒に。

私(ユーザー)が指定した時間形式で端末に時間を表示するにはどうすればよいですか?

答え1

タイムゾーンの設定方法については言及していませんが、自分のユーザーのタイムゾーンを設定するので、変数を設定して設定する必要がありますTZ。 Bash(最小バージョン4.1.5)TZには、変更を説明する際にいくつかの珍しい点があります。変更は、シェルが外部コマンドを開始した後にのみ反映されます(外部コマンドでなければならず、サブシェルを分岐するだけでは十分ではないか実行されません)。組み込み関数)。

bash-4.1$ PS1='\t '
12:31:05 export TZ=Asia/Tokyo
12:31:12
12:31:13 echo foo
foo
12:31:14 /bin/echo foo
foo
19:31:17

したがって、設定しTZ.bash_profile外部コマンドを実行しないと、最初のプロンプトで前のタイムゾーンの時間が表示され続けます。

export TZ=GMT
# Refresh bash's idea of $TZ for prompt display purposes.
# As of bash 4.1, this requires running an external command!
if [[ $- = *i* ]]; then command true; fi

関連情報