dateコマンドの使用に問題があります。次を実行するとエラーが発生します。
danilo@desktop:~$ x=$(date -d "+60 seconds"); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:07:05 CEST 2017’
私がテストした他のコンピュータでも動作するので、これは奇妙です。またはこれも:
danilo@desktop:~$ x=$(date); dt=$(date -d "$x")
date: invalid date ‘Mo 11. Sep 09:06:43 CEST 2017’
エラーが発生します。
このエラーの理由は何ですか?タイムゾーン設定ですか?どのように動作させることができますか?
答え1
現時点では、そのロケールのデフォルト形式は入力としてサポートされていません。解決策は標準形式を使用することです。たとえば、
x=$(date -d "+60 seconds" +%s); dt=$(date -d "@$x")
+%s
date
標準のUnix形式(epoch以降の秒)を返すように指示します。
ログイン@
指示は、それをエポック以降の秒数としてdate -d "@$x"
解釈します。date
$x