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

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

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Q&A

解決済

2回答

8671閲覧

シェルスクリプトで数値文字列を数値に変換して加算したい。

muku007

総合スコア14

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

0グッド

1クリップ

投稿2020/01/29 01:58

表題の件で、以下に例を挙げます。
(A0000、B0000、C0000、D0000は変数)

1.代入
A0000=”001234"
B0000="004567"

2. 数値に変換
A0000----->1234
B0000----->4567

3.加算
C0000=1234+4567

4.この変数(D0000)に6桁の文字列として結果を格納したい
D0000="006801"

よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

外部コマンド使用せずに変数展開主体でやるとこんな感じですかね。

bash

1A0000="001234" 2B0000="004567" 3C0000=$((10#${A0000}+10#${B0000})) 4D0000=000000${C0000}; D0000=${D0000: -6}

結果

console

1# bash -x 2# A0000="001234" 3+ A0000=001234 4# B0000="004567" 5+ B0000=004567 6# C0000=$((10#${A0000}+10#${B0000})) 7+ C0000=5801 8# D0000=000000${C0000}; D0000=${D0000: -6} 9+ D0000=0000005801 10+ D0000=005801

投稿2020/01/29 07:44

Y.H.

総合スコア7914

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

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

0

ベストアンサー

答えが違う事は置いといて

bash

1A0000="001234" 2B0000="004567" 3 4C0000=$(echo $A0000 + $B0000 |bc) 5 6D0000=$(printf "%06d" $C0000) 7 8echo $D0000

上記は8進数にならない様に文字で行いましたが、10進数として扱うには
echo $((10#${AA0000}))
としても使えます。

投稿2020/01/29 02:41

編集2020/01/29 02:57
amura

総合スコア333

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

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

muku007

2020/01/29 05:44

申し訳ございません 以下のコードについて解説して頂けませんでしょうか ①C0000=$(echo $A0000 + $B0000 |bc)  lbcとは?  どこかのサイトに説明ありますか? ②echo $((10#${AA0000}))    $(()) で、どのようなことが実現出来るのでしょうか   このような事が書かれているサイトってありますか よろしくお願い致します。
amura

2020/01/29 15:41

|bcは、| bcのことです。echo の出力をbdコマンドに渡しています。 echo "( 1 + 2 * 3 + 1 ) / 4" | bc とか書けます。
muku007

2020/01/30 20:23

ありがとうございました。 細かく解説して頂きまして感謝いたします。 ご提示されたサイトみてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問