写一个shell, 比较两个版本字符串的大小, 比如, 输入3.0.14, 3.0.14.8, 输出3,0.14.8
时间: 2023-12-13 19:04:08 浏览: 56
比较两个字符串的大小
3星 · 编辑精心推荐
好的,下面是一个比较两个版本字符串大小的shell脚本:
```bash
#!/bin/bash
ver1=$1
ver2=$2
# 将版本字符串按照.分割为数组
ver1_array=(${ver1//./ })
ver2_array=(${ver2//./ })
# 取出版本号的长度(即.的个数)
len1=${#ver1_array[@]}
len2=${#ver2_array[@]}
# 比较版本号
i=0
while [[ $i -lt $len1 && $i -lt $len2 ]]
do
if [[ ${ver1_array[$i]} -lt ${ver2_array[$i]} ]]
then
echo $ver2
exit
elif [[ ${ver1_array[$i]} -gt ${ver2_array[$i]} ]]
then
echo $ver1
exit
fi
i=$(($i+1))
done
# 如果两个版本号前面的部分相同,则比较长度
if [[ $len1 -lt $len2 ]]
then
echo $ver2
elif [[ $len1 -gt $len2 ]]
then
echo $ver1
else
echo "两个版本号相同"
fi
```
这个脚本首先将输入的版本字符串按照.进行分割,然后逐一比较每个部分的大小,直到发现不同为止。如果前面的部分都相同,那么比较版本号的长度,长度短的版本号较小。
阅读全文