我必须不时更新脚本编译,但我不知道如何在 bash 中启动版本检查脚本。
我有一个包含 3 个变量的版本文件:version=0
,subversion=0
并且subsubversion=1
我有一个 Web 服务器,它使用安装例程作为 bash 脚本提供更新。在名为 updates 的目录中:
/updates/
0.0.1
0.0.2
0.0.3
以及一个名为 current 的目录,用于存储当前版本。
/current/
0.0.1
version
现在我想要一个脚本,它接受$version
、$subversion
和$subsubversion
并确定要下载和执行哪个更新。完成此部分后,更新脚本应增加一个变量,以便在下一个更新可用时下载它。我们称之为nextversion
。
我坚持增加三个变量和nextversion
更新脚本中的变量。
我该怎么做才能将树变量和第四个变量增加到下一个更高级别。如果我从 0.0.9 转到 0.1.0 甚至从 0.9.9 转到 1.0.0 等等,我该如何处理。无需生成大量if
- else
-elif
语句。遗憾的是我不擅长找出循环。
答案1
9.9.9 之后此问题不再存在
#!/bin/bash
version=0
subversion=0
subsubversion=1
updateVersion()
{
if [ "$subsubversion" -lt 9 ]; then
subsubversion=$((subsubversion+1));
elif [ "$subsubversion" = 9 ] && [ "$subversion" -lt 9 ]; then
subsubversion="0"; subversion=$((subversion+1));
elif [ "$subsubversion" = 9 ] && [ "$subversion" = 9 ] && [ "$version" -lt 9 ]; then
subsubversion="0"; subversion="0"; version=$((version+1));
else
echo "overflow"
fi
}
printVersion()
{
echo "${version}.${subversion}.${subsubversion}";
}
updateVersion
printVersion
也许您更愿意使用 git?