Linux에서 두 개의 숫자를 추가하고 싶습니다. 숫자 앞에 0이 포함되어 있습니다. 예를 들면 다음과 같습니다.
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