Время от времени мне приходится обновлять компиляцию скриптов, но я понятия не имею, как запустить скрипт проверки версии в bash.

У меня есть файл версии с 3 переменными: version=0 , subversion=0 и subsubversion=1 и у меня есть веб-сервер, который обслуживает обновления с процедурами установки в виде сценариев bash. В каталоге под названием обновления:

/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 ответ1

0

Это перерыв после 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?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .