Bash 中的更新机制是什么样的

Bash 中的更新机制是什么样的

我必须不时更新脚本编译,但我不知道如何在 bash 中启动版本检查脚本。

我有一个包含 3 个变量的版本文件:version=0subversion=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?

相关内容