Bash-如何将时间戳变量格式化为人类可读的格式

Bash-如何将时间戳变量格式化为人类可读的格式,bash,datetime-format,Bash,Datetime Format,在脚本开始时,我设置了一个可变日期,我需要在脚本的不同部分和不同格式中使用它 我的问题是使用相同的变量,但格式不同: #!/bin/bash DATE=$(date +%s) echo "date in timestamp format: $DATE" echo "..." # some other actions that need time... echo "date start at: $(date $(DATE +%Y-%m-%d:%H:%M))" 这将运行但输出错误(日期:未找到命令

在脚本开始时,我设置了一个可变日期,我需要在脚本的不同部分和不同格式中使用它

我的问题是使用相同的变量,但格式不同:

#!/bin/bash
DATE=$(date +%s)
echo "date in timestamp format: $DATE"
echo "..."
# some other actions that need time...
echo "date start at: $(date $(DATE +%Y-%m-%d:%H:%M))"
这将运行但输出错误(日期:未找到命令):

时间戳格式的日期:1490884719 ... .sh:第6行:日期:未找到命令 开始日期:2017年3月30日星期四16:38:40 如何消除错误?

正在使用
$(…)
尝试执行
日期
命令,但未成功。巧合的是,
date
仍在运行,没有参数,返回当前时间(看起来与原始时间类似)

尝试用以下内容替换整个线路:

echo“日期开始时间:$(日期--date=@${date}'+%Y-%m-%d:%H:%m')”

对于GNU日期(Linux和friends),以及:

echo“日期开始于:$(日期-j-f'%s'${date}'+%Y-%m-%d:%H:%m')”


用于BSD日期(macOS和其他BSD)。

您正在子shell中运行
date
。可能您想执行的是
echo“日期开始时间:$(日期-d“$date”+%Y-%m-%d:%H:%m”)”
似乎也不起作用:日期:无效日期`1490885663'尝试
-d“@$date”
date in timestamp format: 1490884719
...
<script>.sh: line 6: DATE: command not found
date start at: Thu Mar 30 16:38:40 CEST 2017