将变量值添加到表达式中

将变量值添加到表达式中

我正在尝试将 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

相关内容