• ベストアンサー

シェルスクリプト:N日前の日付の取得

#/bin/sh DAY=$1 TIME=`date --date '"$DAY" day ago' +%Y%m%d` echo $TIME 上を実行しても$DAYが展開されず、 date: invalid date '"$DAY" day ago' と、dateコマンドがエラーを返してきます。 $DAYを展開させるためにはどうクォートすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.1

#/bin/sh DAY=$1 TIME=`date --date "$DAY"' days ago' +%Y%m%d` echo $TIME これではどうでしょうか?

ssaass
質問者

お礼

ありがとうございました. 見事に解決できました. DAY=3だとすると date --date 3' days ago' +%Y%m%d が実行されているわけですよね? これをコマンドラインからたたいてみるとちゃんと値を返してくるので正常に動いてはいるようですが, 3' days ago' というオプション指定がどうもしっくりこないもので・・・.

関連するQ&A

専門家に質問してみよう