Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。

Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。

Linuxで2つの数字を追加したいです。数字の前にゼロが含まれています。たとえば、次のようになります。

000 + 1 = 001,
111 + 4 = 115

答え1

これを基本的に実行できるツールがあるかもしれませんが、次の関数を使用して実行できました。

math_func () {
    local _n1=$1
    local _op=$2
    local _n2=$3
    local _p
    local _a
    if [ "${#_n1}" -gt "${#_n2}" ]; then
        _p=${#_n1}
    else
        _p=${#_n2}
    fi
    _a=$(echo "scale=0; $_n1 $_op $_n2" | bc -l)
    printf "%0${_p}d\n" "$_a"
}

これは減算、乗算、除算も行います(もちろん、乗算演算子をエスケープする必要があり、浮動小数点数を処理しません)。

両方の入力番号の長さを確認し、出力のゼロパディングサイズをより大きな値に設定します。

次のように呼び出すことができます。

$ math_func 000 + 1
001
$ math_func 000000500 \* 5
000002500
$ math_func 010 / 2
005
$ math_func 2 - 1
1

答え2

まあ、私は何かを仮定しましたが、質問には何の条件も言及されていません!

追加する番号を事前に知っている場合は、次の簡単な解決策を使用できます。

追加するには、数値をパラメータとして渡す必要があります。

もちろん最適ではありませんが、アイデアだけです!

#!/bin/bash
num1=$1
num2=$2
temp=$(( $num1 + $num2 ))
sum=$(printf "%03d" ${temp})
echo "Sum is: $sum"

出力 Sum is: 001

関連情報