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

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

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

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

Q&A

解決済

2回答

504閲覧

シェルスクリプトでcut抽出した変数で計算できない

good1000

総合スコア2

bash

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

0グッド

0クリップ

投稿2022/08/13 06:51

編集2022/08/13 07:00

シェルスクリプトで日付をcutコマンドで抽出した変数で計算できなくて困っています。

day= 2022/08/13
Y= echo $day | cut -d '/' -f1

YY= echo expr $Y + 1
echo $YY

$YYの値を2023にしたいのですが、1としかでません。
どうすればいいのでしょうか。

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

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

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

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

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

otn

2022/08/13 09:09

コードを書く時はコードブロックにしないと記号によっては表示されません。 ``` というバッククォート3つの文字からなる行で上下に挟みましょう。
guest

回答2

0

日付処理するなら、dateコマンドを使ってしまうのも、処理内容が明確になるので、手です。
(組み込みコマンドで無いので、ループで何万回も実行するなら避けた方が良いですが)

Bash

1day=2022/08/13 2 3Y=$(date -d "$day" +%Y) 4M=$(date -d "$day" +%m) 5D=$(date -d "$day" +%d) 6echo Y=$Y M=$M D=$D 7 8↓こういうことも可能。"+ 1 year"だとありがたみが無いが、"+ 1 day"等は date コマンドを使わないと面倒。 9Y=$(date -d "$day + 1 year" +%Y)

投稿2022/08/13 09:17

編集2022/08/13 09:54
otn

総合スコア85625

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

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

0

ベストアンサー

bash

1#!/bin/bash 2 3day=2022/08/13 4Y=${day%%/*} 5YY=$((Y+1)) 6echo ${YY}

2022/08/13から2022年の取り出しの他に、08の取り出しと、13の取り出しを行いたい

以下、read と here string を使う場合です。

bash

1day=2022/08/13 2IFS=/ read -r Y M D <<< $day 3echo $Y 4echo $M 5echo $D

投稿2022/08/13 07:20

編集2022/08/13 08:25
melian

総合スコア20462

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

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

good1000

2022/08/13 07:35 編集

回答ありがとうございます。 しかし、実行するとコマンドが見つかりませんと表示されてしまいます。 なぜでしょうか。。
good1000

2022/08/13 07:37

すみません、スペースを無くしたら表示できました。有難うございます。
good1000

2022/08/13 07:53

すみません、2022/08/13から2022年の取り出しの他に、08の取り出しと、13の取り出しを行いたいのですが 教えて頂けますでしょうか。m<>m また、この記述の方法は、なんという方法なのでしょうか。 調べたいため、方法名を教えて頂けると幸いです。
melian

2022/08/13 08:25

> この記述の方法は、なんという方法なのでしょうか。 bash の parameter expansion です。
otn

2022/08/13 09:24

> この記述の方法は、なんという方法なのでしょうか。 このあたりは、man bashに全部書いてあるので、man bashを見ましょう。
good1000

2022/08/13 09:29

この度は誠にありがとうございました。m<>m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問