如何在Bash中转换Date变量的日期显示格式
问题解决方案
你的代码存在两个可修正的问题:
+与格式字符串之间多余的空格:date命令要求格式标识+和后续格式串之间不能有空格,空格会被判定为无效参数导致命令执行失败- 变量未包裹双引号:
${date_export}没有用双引号包裹,当变量值包含特殊字符或空格时会出现解析错误
修正后的GNU/Linux环境可用命令
DATE_EXPORT=$(date -d "${date_export}" +'%Y%m%d')
更高效的纯Shell字符串替换方案(跨环境通用,不需要调用外部date命令)
直接移除变量中所有的 - 字符即可,执行效率更高:
DATE_EXPORT=${date_export//-/}
macOS/BSD环境适配方案
如果你的运行环境是macOS,系统默认的BSD版date命令不支持-d参数,需要使用以下命令:
DATE_EXPORT=$(date -j -f "%Y-%m-%d" "${date_export}" +"%Y%m%d")
内容的提问来源于stack exchange,提问作者SA2018
相关产品推荐
相关产品推荐

