Linux에서 두 개의 숫자를 추가하고 싶습니다. 숫자 앞에 0이 포함되어 있습니다.

Linux에서 두 개의 숫자를 추가하고 싶습니다. 숫자 앞에 0이 포함되어 있습니다.

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

관련 정보