PUG*_*PUG 6 osx bash parameter shell-script macintosh
我的shell脚本:
#!/bin/bash
echo "$1";
startd=$(date -d "$1" +"%Y%m%d");
echo "$startd";
Run Code Online (Sandbox Code Playgroud)
我的命令:
须藤 ./test.sh "20151010"
输出:
20151010
20150213
Run Code Online (Sandbox Code Playgroud)
它打印今天的日期而不是打印输入日期有什么想法吗?
OS X 版本date使用-f选项来解析格式化的日期/时间:
date -j -f '%Y%m%d' "$1" +'%Y%m%d'
Run Code Online (Sandbox Code Playgroud)
该-j选项使其仅打印时间,而不是尝试设置系统时钟。所以完整的脚本将是:
#!/bin/bash
echo "$1";
startd=$(date -j -f '%Y%m%d' "$1" +'%Y%m%d');
echo "$startd";
Run Code Online (Sandbox Code Playgroud)
这是一个成绩单:
$ ./testdate.sh 20151010
20151010
20151010
Run Code Online (Sandbox Code Playgroud)
如果你想在 OS X 上格式化日期,你可以试试这个:
date -j -f "%Y%m%d" "20151010"
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
Sat Oct 10 17:27:28 CDT 2015
Run Code Online (Sandbox Code Playgroud)