我有一个semver版本作为字符串,我想采用补丁版本并对其进行数学计算。但我就是想不明白。
这是我尝试过的:
#!/bin/bash
version="appVersion=1.3.15"
version=${version##*=} # "1.3.15"
semver=( ${version//./ } ) # ["1", "3", "15"]
patch="${semver[2]}" # "15"
# So far so good.
echo $patch # 15
# This fails. I have no clue how to get the patch variable to be of the correct type
previous=${patch - 1}
echo $previous
对于bash中的算术运算,需要使用双括号。请检查这个算术扩张段bash手册
所以你的代码应该是:previous=$((patch-1))
或者正如Benjamin W. well在评论中建议的那样:
((previous = patch - 1))
输出:
root@:~# bash test.sh
15
14