• ベストアンサー

指定日の前日を求める

シェル実行時にわたす第一引数YYYYMMDDから 前日のYYYYMMDDを求めたいのですが、 export SYS_YEARPRE=`date --date '$1 1 days ago' +%Y%m%d` これだとエラーが出てしまいます。 dateの追加いかがが悪いのでしょうか?

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

  • ベストアンサー
  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.1

シングルクォート「'」で囲っている部分を、ダブルクォート「"」に変えてください。 シングルクォートで囲ってしまうと「$1」が変数ではなくそのままの文字列として扱われてしまいます。 ---- export SYS_YEARPRE=`date --date "$1 1 days ago" +%Y%m%d` ----

nana_poco
質問者

お礼

ありがとうございました。 ご指摘どおりです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シェルスクリプト: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を展開させるためにはどうクォートすればいいのでしょうか?

  • shで書いたシェルスクリプトで`とか'とかの中で変数を使いたい。

    標題の質問ですが、gnu dateコマンドを使って数日前の日付を取得しているのですが、 こんな具合: DATE=`date --d '1 day ago'` 何日前の日付を取得するかを引数で決めたいのです。 しかし DATE=`date` --d '$1 day ago'` これでは当然上手く行きません。 上手いことエスケープして変数を使用する方法を教えてください。 シェルはshです。

  • 3日以前のバックアップを削除する

    /etc/crontabで以下のbackup.shを毎晩実行するのですが、 3日以前のものは毎回消していく場合は以下のような、 少し初心者的な書き方しか現在分からないのですが、 他にもし良い書き方があれば、教えていただけますでしょうか? よろしくお願いします。 #!/bin/sh DATE_1=`date -d '1 day ago' +%Y%m%d` DATE_2=`date -d '2 days ago' +%Y%m%d` DATE_3=`date -d '3 days ago' +%Y%m%d` if [ test_$DATE_2.tar.gz ]; then mv -f test_$DATE_2.tar.gz test_$DATE_3.tar.gz fi rm -f test_$DATE_3.tar.gz if [ test_$DATE_1.tar.gz ]; then mv -f test_$DATE_1.tar.gz test_$DATE_2.tar.gz fi if [ test.tar.gz ]; then mv -f test.tar.gz test_$DATE_1.tar.gz fi tar zcvf test.tar.gz /usr/local/test

  • シェルにて日付計算して値を取得したい

    シェルにて日付計算して値を取得したい A = 'date -d "1 days ago" + "%Y%m%d"' B = Aの2ケ月前を設定したい 悩んでいるところ↓ 上記のように、システム日付に1日前を変数Aへ格納して、その変数Aの2ケ月前を求めるには、どのようにしたらよいのでしょうか?

  • Solaris9でdateコマンドの結果がおかしい

    sun fire + Solaris9でシェルを作成しました。 目的は、1ヶ月前のログを削除する です。 で、こんなシェルを作成しました。 #!/bin/sh # logmove.sh DAY=`date +%d` RMDAY=`env TZ=JST+735 date +%Y%m%d` # 24H*31Day-9H=735 RMFILE=log_${RMDAY}.* (以下省略) しかし、この結果、$RMDAYには今日の日付しか返ってきません。これを RMDAY=`env TZ=JST+159 date +%Y%m%d` # 24H*7Day-9H=159 とすると、ちゃんと1週間前の日付が返ってきます。 dateの仕様なのか、シェルの仕様なのか良くわかりません。解決策はないでしょうか。

  • ESXiのdateコマンドについて

    ESXiにSSHで接続してスクリプトを作っているのですが、現在からn日前の日時をを取得する方法がわかりません。 centOSなどでは、date --date '7 day ago' '+%Y-%m-%d' などでできるのですが、ESXiではできません。 1日の前まででは、ymdtime=`TZ=JST+15 date '+%Y%m%d%H%M%S'` などでできるのですが、それ以上だと当然できません。何か良い方法はありますか?

  • 3分間シェルを実行する方法

    netstat の結果をログ出力する為、次のようにシェルを作成しましたがもう少し効率の良い方法はありませんでしょうか。 ■作成したシェルスクリプト ------------------------------------------------------------------------------- #!/bin/bash #ログの出力先 LOGFILE=/var/log/netstat.log #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 -------------------------------------------------------------------------------

  • 31日前の日付はいつ?

    #!/bin/sh d=`date +%Y%m%d` 以前に、このシェルで今日の日付を取り出す方法を教えていただいたのですが、 この日付を元に、31日前の日付を取り出す方法はありますでしょうか?

  • 【シェル】前日と本日の差を出力させたいです。

    【シェル】前日と本日の差を出力させたいです。 現在、毎日の訪問者数を出力させているものをつくっているのですが、 前日との差を出力させたいと考えてます。 あまり得意ではないのでアドバイスよろしくお願いします。 ----------.sh--------------- LOGDATE=`date +%Y/%m/%d` KANYUSYA=??????? echo "$LOGDATE ,"訪問者数:"$KANYUSYA"人" >> /opt/tmp/test.log ----------------------------- --------test.log------------- 2010/09/02 , 訪問者数:3947人 2010/09/03 , 訪問者数:3000人 2010/09/04 , 訪問者数:3500人 ・ ・ ・ ------------------------------ 理想は以下のような出力結果になってほしいです。 --------test.log------------- 2010/09/02 , 訪問者数:3947人,前日+100人 2010/09/03 , 訪問者数:3000人,前日-947人 2010/09/04 , 訪問者数:3500人,前日+500人 ・ ・ ・ ------------------------------ どうぞよろしくお願いいたします。

  • シェル操作でファイルを削除

    現在、作前日の不要なファイルを削除するステップですするというシェルを作成したのですが、 #!/bin/sh set `date --date '1 days ago' '041125'` rm -f /ファイルパス/*$1.txt 何故か、041126に作成された全てのテキストファイルが削除されてしまいます。 何がおかしいのでしょうか?

このQ&Aのポイント
  • ケガ保険加入後、半年後にケガをしたが保険代理店担当者からの返答がなく、治療に通院した。
  • 保険代理店担当者は他の保険の問い合わせには返答するが、ケガ保険に関しては無視されている。
  • 最終的に保険代理店担当者はケガ保険に加入していなかったと認めたが、納得がいかない状況にある。
回答を見る