Различные примеры создания индикатора выполнения в Bash
В этой части руководства показаны различные способы реализации индикатора выполнения в Bash.
Пример 1: реализация простого индикатора выполнения без какой-либо команды
Создайте файл Bash со следующим сценарием, который отображает индикатор выполнения с использованием символа «#» и команды «sleep». Команда «printf» используется здесь для отображения индикатора выполнения. Индикатор выполнения разделен на четыре части. 25% отображаются через 1 секунду. 50% отображается через 3 секунды. 75% отображается через 2 секунды. 100% отображается через 1 секунду.
#!/бин/баш
printf ' \n Подождите, чтобы выполнить задание... \n \n '
# Подождите 1 секунду
спать 1
# Печатаем первую часть индикатора выполнения
printf '[##### ] 25%% выполнено. \р '
# Подождите 3 секунды
спать 3
# Распечатать вторую часть индикатора выполнения
printf '[########## ] Выполнено на 50%%. \р '
# Подождите 2 секунды
спать 2
#Распечатать третью часть индикатора выполнения
printf '[############### ] Выполнено на 75%%. \р '
# Подождите 1 секунду
спать 1
# Печатать последнюю часть индикатора выполнения
printf '[####################] 100%% завершено. \р '
printf ' \n \n Задача выполнена. \n \n '
.
Следующий вывод появляется после 1 секунды выполнения скрипта:
Следующий вывод появляется после 7 секунд выполнения скрипта:
Пример 2: реализация индикатора выполнения с помощью команды «Pv»
Полная форма команды «pv» — «просмотр каналов». Он используется для отслеживания хода данных, которые передаются через канал, и отображения индикатора выполнения в зависимости от размера данных. Эта команда по умолчанию не установлена в системе. Запустите следующую команду, чтобы установить команду «pv», прежде чем практиковаться в сценарии этого примера:
$ судо подходящий установить пвВы должны выбрать файл большого размера, который копируется из одного места в другое. Создайте файл Bash со следующим скриптом, который копирует файл «test.txt» из текущего местоположения в местоположение «/home/fahmida/temp/». Команда «pv» используется здесь для отображения индикатора выполнения. Индикатор выполнения отображается в зависимости от размера файла «test.txt».
#!/бин/башэхо 'Копирование файла из одного места в другое'.
# Подождите 2 секунды
спать 2
# Скопируйте файл в место назначения
кот test.txt | пв -с $ ( статистика -с % с test.txt ) > / дом / понимание / температура / test.txt
эхо «Файл скопирован».
После завершения выполнения скрипта отображается следующий вывод:
Пример 3: реализация индикатора выполнения с помощью команды «Диалог»
Другой способ реализации индикатора выполнения в Bash — использование команды «диалог». Эту команду можно использовать для отображения хорошо выглядящего индикатора выполнения в терминале. С помощью этого индикатора выполнения можно отображать многие типы виджетов. Задачей индикатора выполнения, отображаемой этой командой, можно управлять с помощью сценария Bash. Этот индикатор выполнения не установлен в системе по умолчанию. Выполните следующую команду, чтобы установить этот индикатор выполнения в системе:
$ судо подходящий установить диалогСоздайте файл Bash со следующим сценарием, который отображает индикатор выполнения с помощью команды «диалог». Задача копирования файла «/etc/passwd» в папку «/home/fahmida/tempdir» отображается с помощью индикатора выполнения. Индикатор выполнения разделен на пять частей; каждая часть отображается через 2 секунды. Параметр –title используется в команде «dialog» для отображения заголовка индикатора выполнения. Параметр –gauge используется в команде «диалог» для отображения индикатора выполнения высотой 10 строк и шириной 100 символов. Над индикатором выполнения отображается сообщение «Ожидание завершения задачи».
#!/бин/баш#Инициализировать счетчик
current_pos '=' 0
(
#Определяем бесконечный цикл
для ( ( ;; ) )
делать
кот <<ЭОФ
разделитель
$current_pos
#Показать текущее значение счетчика
cp /etc/passwd в /home/fahmida/tempdir ($current_pos%):
разделитель
EOF
#Увеличить счетчик на 20
( ( текущая_позиция+= двадцать ) )
# Выход из цикла, когда значение счетчика больше 100
[ $current_pos -gt 100 ] && перерыв
# Подождать 2 секунды после каждого приращения
спать 2
сделанный
) | диалог --заголовок 'Копирование файла...' --измерять «Ожидание выполнения задачи» 10 100 0
Следующий вывод появляется после 6 секунд выполнения скрипта:
Следующий вывод появляется после 10 секунд выполнения скрипта:
Заключение
В этом руководстве показаны различные способы разработки индикатора выполнения с использованием сценария Bash, чтобы помочь пользователям Bash использовать индикатор выполнения в своей программе.