coreutils 날짜가 스크립트에서 호출될 때 시간대를 반환하지 않습니다.

coreutils 날짜가 스크립트에서 호출될 때 시간대를 반환하지 않습니다.

터미널에서 라인의 출력

TZ="Australia/Broken_Hill" date -d '2021-4-26 09:29'
TZ="Australia/Broken_Hill" date -d '2021-4-26 09:29' +%Z

Mon Apr 26 09:29:00 AM ACST 2021
ACST

반대로 ./script.sh선을 따라 달리면

date_in="2021-4-26 09:29"
tz_in="Australia/Broken_Hill"
date_out=$(TZ=\"$tz_in\" date -d "$date_in")
tz_out=$(TZ=\"$tz_in\" date -d "$date_in" +%Z)
echo $date_out
echo $tz_out

출력은 다음과 같습니다

Mon Apr 26 09:29:00 AM 2021
# empty line

스크립트에서 호출할 때 시간대가 생략되는 이유는 무엇입니까?

감사해요!
크리스

답변1

따옴표 문자를 인용하는 이유는 무엇입니까? \"다음으로 변경해야 합니다 ".

date_in="2021-4-26 09:29"
tz_in="Australia/Broken_Hill"
date_out=$(TZ="$tz_in" date -d "$date_in")
tz_out=$(TZ="$tz_in" date -d "$date_in" +%Z)
echo $date_out
echo $tz_out

답변2

필요했기 때문에 탈출을 난독화했습니다.

date_in="2021-4-26 09:29"
tz_in="Australia/Broken_Hill"
time=$(date -d "TZ=\"$tz_in\" $date_in")
echo $time

관련 정보