Вместо использования команды `grep | wc -l` для подсчета количества шагов в скрипте, можно воспользоваться переменной счетчика. В каждом шаге увеличивайте значение счетчика на 1. Пример: ```bash #!/bin/bash # Инициализация счетчика count=0 # Шаг 1 (( count++ )) echo "Выполняется шаг 1..." # Шаг 2 (( count++ )) echo "Выполняется шаг 2..." # Шаг 3 (( count++ )) echo "Выполняется шаг 3..." # Вывод общего количества шагов echo "Всего шагов: $count" ``` Таким образом, вы можете точно знать количество шагов и использовать его для прогресс-бара или любых других нужд.
Тогда воспользуйтесь оператором "+=" для увеличения значения NOW_STEP на 1. Создание отдельных функций для каждого шага не имеет смысла.
Если количество шагов в вашем скрипте задано заранее, то добавьте статическую переменную в начало скрипта, чтобы она отслеживала количество шагов. Используйте grep в сочетании с командой wc для нахождения количества шагов. Обратите внимание, что grep тоже будет учитываться и добавлять 1. Однако, если количество шагов в скрипте динамическое, то использование функций перед и после каждого шага необходимо. Рассмотрите возможность организации шагов в массиве и выполнение циклом по массиву. Пример ниже поможет вам понять это лучше.
```bash #!/bin/bash # Определите шаги в массиве steps=("initialize" "build" "deploy" "notify") # Выведите общее количество шагов echo "Всего шагов: ${#steps[@]}" # Цикл по массиву шагов for step in "${steps[@]}"; do echo "Выполнение шага: $step" # Вызов соответствующей функции $step done # Определение функций шагов function initialize() { echo "Шаг initialize" # ваш код } function build() { echo "Шаг build" # ваш код } function deploy() { echo "Шаг deploy" # ваш код } function notify() { echo "Шаг notify" # ваш код } ``` Выполняя этот скрипт, вы увидите, как выполняется каждый шаг в цикле, вызывается соответствующая функция и выводится соответствующее сообщение.