質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Q&A

解決済

1回答

1849閲覧

bashにてdateの結果が変数に格納できない

whimyama

総合スコア9

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

1グッド

2クリップ

投稿2019/08/05 05:50

編集2019/08/05 06:04

シェルスクリプトにて、dateの結果が変数に格納できません。

shell

1#!/bin/sh 2thisMonth=`date +'%Y%m01'` 3 4zenMonth=`date -d "$thisMonth 1 month ago" +'%Y%m'` 5zenMonthLastDate=`date -d "$zenMonth01 1 days ago" +%Y%m%d 6 7echo $zenMonth 8echo $zenMonthLastDate

zenMonthLastDateですが、前月末日を取得しようとしています。(20190731)
上記の記述では「20190804」で前日になってしまいます。

記述がおかしいでしょうか?

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

zenMonthLastDateの行末にバッククォートを足して実行したところ、私の環境だと正しく動作しました。
記載がミスなのであれば、環境など追記お願いいたします。


追記を受けて回答も追記

zenMonthLastDateですが、前月末日を取得しようとしています。(20190731)

下記の記載で「20190731」が取得可能です。
(「$zenMonth01」だと「zenMonth01」という変数指定になります。)

bash

1zenMonthLastDate=`date -d "${thisMonth}01 1 days ago" +%Y%m%d`

投稿2019/08/05 05:54

編集2019/08/05 06:49
yamap55

総合スコア1376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

whimyama

2019/08/05 06:02

ありがとうございます。確認とれました。
whimyama

2019/08/05 06:51

なるほど!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問