Date

從腳本呼叫時 coreutils 日期不返回時區

  • March 4, 2021

在終端中,行的輸出

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

為什麼從腳本呼叫時省略時區?

謝謝!

克里斯

為什麼要引用引號字元?您必須更改\""

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

我混淆了轉義,因為它需要

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

引用自:https://unix.stackexchange.com/questions/637518