日付コマンドのタイムゾーン調整を文字列でどのように結び付けることができますか?

日付コマンドのタイムゾーン調整を文字列でどのように結び付けることができますか?

Bashシェルスクリプトから別のタイムゾーンの日付と時刻を出力しようとしています。次のようなこの問題、私はこれをした:

#!/usr/bin/env bash

IL=":Asia/Jerusalem" date "+%a %b %d %R"
echo "Israel:    $IL"

出力は次のとおりです。

Wed Jun 19 15:12
Israel:

そのタイムゾーンの時間が正しくないだけでなく、出力が2行に間違って表示されます。

次のように出力したいと思います。

Israel: Wed Jun 19 23:12

他のスクリプトでは、デフォルトのタイムゾーンは問題ありません(たとえば、現在のシステム時刻をmyに.xinitrc表示します)。私は次のことをしました。

date_str="$(date +"%a %b %d %R")";
topbar="Time: $date_str";
xsetroot -name "$top_bar";

今回は私が何を間違っているのだろうか?

答え1

コマンドの環境変数TZ=にタイムゾーンを割り当てる部分がありません。TZdate

TZ='Asia/Jerusalem' date '+%a %b %d %R'

あなたがリンクした質問には、これについての非常に詳細な説明があります。

この出力を変数に割り当てるには、次のものを使用する必要があります。コマンドの置き換え:

IL=$(TZ='Asia/Jerusalem' date '+%a %b %d %R')

関連情報