我正在嘗試將 Ubuntu Mate 20.04 上的一些未來日期轉換為紀元號碼。
所以我決定要寫這段程式碼:
daysAmount="10"
endDate=$(date +"%b %_d %Y" -d "+$daysAmount days")
epochNum=$(date -d "$endDate" +%s)
前兩行運行良好,但我沒有得到任何資訊epochNum=
。
$(date)
像我這樣在裡面寫另一個變數可以嗎?如果沒有,我怎麼能讓這個東西發揮作用?
我也嘗試過,endDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s)
但這也不起作用。
答案1
您可以使用臨時區域設定運行命令。這應該可以解決您的問題:
daysAmount="10"
endDate=$(LC_ALL=C date +"%b %_d %Y" -d "+$daysAmount days")
epochNum=$(LC_ALL=C date -d "$endDate" +%s)
答案2
設法讓它發揮作用。
在轉換為紀元之前檢查您的日期語言。如果您的安裝名稱與美國字母表不同,如此處的“date”命令範例:
1.11.2021 (пн) 14:47:59 EET
轉換將不起作用。
在不同的機器上,“日期”顯示如下(美國字母表):
Mon Nov 1 14:47:45 EET 2021
程式碼運行得很好
有關不同語言機器上的工作範例,請參閱: https://unix.stackexchange.com/a/675661/499362