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