首页 > 解决方案 > 使用 Bash 进行减法

问题描述

我正在尝试使用 bash 从十进制数中减去。

例如:如果我有一个数字 1.0.0.55,我想减去得到 1.0.0.54。

这是我目前拥有的:

#!/bin/bash

LATEST_RELEASE="myproduct_1.0.0.55"

RELEASE_NUMBER=`echo $LATEST_RELEASE | sed 's/[^0-9.]//g'`

echo $RELEASE_NUMBER

#this only works with whole numbers (i.e. 10055)
PREVIOUS_RELEASE=$(($RELEASE_NUMBER - 1))

echo $PREVIOUS_RELEASE

#EOF

任何帮助,将不胜感激!

谢谢!

标签: stringbashshell

解决方案


您需要隔离要从中提取的字符串部分,1因为您无法1从字符串中进行子跟踪1.0.0.55

考虑在这里使用 awk:

echo '1.0.0.55' | awk 'BEGIN{FS=OFS="."}{$4=$4-1}1'

推荐阅读