Bashスクリプトで次のように変数を定義しました。
BIRTHDAY="1993-01-11 11:11 +08:00"
これをepochに変換してdate
から。echo
echo $(date -d $BIRTHDAY +%s)
ただし、エラーが発生しますdate: extra operand ‘+08:00’
。
しかし、bashインタラクティブシェルでは実行できます。
➜ ~ BIRTHDAY="1993-01-11 11:11 +08:00"
➜ ~ date -d $BIRTHDAY +%s
726721860
➜ argos echo $(date -d $BIRTHDAY +%s)
726721860
私も走ってみましたが、echo $(date -d \"$BIRTHDAY\" +%s)
それもうまくいきませんでした。
だから、これは何が問題なの?
答え1
次の見積もりが必要です"$BIRTHDAY"
。
echo $(date -d "$BIRTHDAY" +%s)
実際、zshを対話型シェルとして使用しているようです。これは、このコマンドが機能する唯一のシェルであるためです(デフォルトのIFS値を使用)。
date -d $BIRTHDAY +%s
とにかくzshでも変数を引用すると便利です。
date -d "$BIRTHDAY" +%s