首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想在linux中添加两个数字,数字包含前导零。

我想在linux中添加两个数字,数字包含前导零。
EN

Unix & Linux用户
提问于 2019-07-26 12:42:04
回答 2查看 508关注 0票数 0

我想在Linux中添加两个数字,数字包含前导零,例如:

代码语言:javascript
复制
000 + 1 = 001,
111 + 4 = 115
EN

回答 2

Unix & Linux用户

发布于 2019-07-26 13:33:36

也许有一个工具可以在本地完成这一任务,但我能够通过以下功能来完成它:

代码语言:javascript
复制
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"
}

这也可以进行减法、乘法和除法(尽管您必须避开乘法运算符,并且它不会处理浮点数)。

它将检查两个输入数字的长度,无论哪个更大,都将用于设置输出的零填充大小。

你这样称呼它:

代码语言:javascript
复制
$ math_func 000 + 1
001
$ math_func 000000500 \* 5
000002500
$ math_func 010 / 2
005
$ math_func 2 - 1
1
票数 2
EN

Unix & Linux用户

发布于 2019-07-26 13:43:37

嗯,我假设了一些事情,但问题没有提到任何条件,以及!

如果您知道要预先添加哪些数字,可以使用这样的简单解决方案,

需要传递数字以作为参数添加。

当然不是最佳的,但只是一个想法!

代码语言:javascript
复制
#!/bin/bash
num1=$1
num2=$2
temp=$(( $num1 + $num2 ))
sum=$(printf "%03d" ${temp})
echo "Sum is: $sum"

输出Sum is: 001

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/532298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档