私のシェルスクリプト:
#!/bin/bash
echo "$1";
startd=$(date -d "$1" +"%Y%m%d");
echo "$startd";
私のコマンド:
Sudo ./test.sh "20151010"
出力:
20151010
20150213
入力日を印刷する代わりに今日の日付を印刷しましたか?
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
OS Xで日付をフォーマットしようとしている場合は、これを試すことができます:
date -j -f "%Y%m%d" "20151010"
次の出力が表示されます。
Sat Oct 10 17:27:28 CDT 2015