Bash - 如何将时间戳变量格式化为人类可读格式
Bash - how to format a time-stamp variable to human readable format
在脚本的开头我设置了一个变量 DATE,我需要在脚本的不同部分以不同的格式使用它。
我的问题是使用相同的变量但以不同的方式格式化它:
#!/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))"
这会运行但输出错误(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
如何消除错误?
使用 $(...)
试图执行 DATE
命令,但没有成功。巧合的是,date
无论如何都是 运行,没有参数,返回当前时间(看起来与原始时间相似)。
尝试用以下内容替换整行:
echo "date start at: $(date --date=@${DATE} '+%Y-%m-%d:%H:%M')"
GNU 日期(Linux 和朋友),以及:
echo "date start at: $(date -j -f '%s' ${DATE} '+%Y-%m-%d:%H:%M')"
BSD 日期(macOS 和其他 BSD)。
在脚本的开头我设置了一个变量 DATE,我需要在脚本的不同部分以不同的格式使用它。
我的问题是使用相同的变量但以不同的方式格式化它:
#!/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))"
这会运行但输出错误(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
如何消除错误?
使用 $(...)
试图执行 DATE
命令,但没有成功。巧合的是,date
无论如何都是 运行,没有参数,返回当前时间(看起来与原始时间相似)。
尝试用以下内容替换整行:
echo "date start at: $(date --date=@${DATE} '+%Y-%m-%d:%H:%M')"
GNU 日期(Linux 和朋友),以及:
echo "date start at: $(date -j -f '%s' ${DATE} '+%Y-%m-%d:%H:%M')"
BSD 日期(macOS 和其他 BSD)。