我的外壳脚本:
#!/bin/bash
echo "$1";
startd=$(date -d "$1" +"%Y%m%d");
echo "$startd";
我的命令:
须藤./test.sh“20151010”
输出:
20151010
20150213
它打印了今天的日期而不是打印输入的日期,你知道吗?
答案1
OS X 版本date
使用该-f
选项来解析格式化的日期/时间:
date -j -f '%Y%m%d' "$1" +'%Y%m%d'
该-j
选项导致它只打印时间,而不尝试设置系统时钟。所以完整的脚本是:
#!/bin/bash
echo "$1";
startd=$(date -j -f '%Y%m%d' "$1" +'%Y%m%d');
echo "$startd";
这是一个文字记录:
$ ./testdate.sh 20151010
20151010
20151010
答案2
如果您尝试在 OS X 上格式化日期,您可以尝试以下操作:
date -j -f "%Y%m%d" "20151010"
我得到以下输出:
Sat Oct 10 17:27:28 CDT 2015