將變數值加入表達式中

將變數值加入表達式中

我正在嘗試將 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

相關內容