私のシェルスクリプト:
#!/bin/bash
echo "$1";
startd=$(date -d "$1" +"%Y%m%d");
echo "$startd";
私のコマンド:
sudo ./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