날짜 명령의 시간대 조정을 문자열로 어떻게 묶을 수 있습니까?

날짜 명령의 시간대 조정을 문자열로 어떻게 묶을 수 있습니까?

Bash 쉘 스크립트에서 다른 시간대의 날짜와 시간을 출력하려고 합니다. 다음과 같은이 문제, 나는 이걸했다:

#!/usr/bin/env bash

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

출력은 다음과 같습니다.

Wed Jun 19 15:12
Israel:

해당 시간대에 대한 시간이 정확하지 않을 뿐만 아니라 출력이 두 줄에 잘못 표시됩니다.

다음과 같이 출력하고 싶습니다.

Israel: Wed Jun 19 23:12

다른 스크립트에서는 기본 시간대가 괜찮습니다(예: .xinitrcmy 에 현재 시스템 시간 표시). 저는 다음을 수행했습니다.

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')

관련 정보