мне нужна помощь с Баш скрипт я запускаю так:Как отобразить ход другой команды
do_something > file.txt
(я использую третью строчку этого file.txt в другой эхо-выход)
сейчас Мне нужно получить несколько символов во второй строке файла .txt. (Есть только точки - «»)
я могу получить количество символов с помощью этой команды:
progress=$(awk 'NR==2' file.txt | grep -o \. | wc -w)
Но проблема в том, что file.txt и количество символов на второй строке находится «индикатор выполнения», поэтому он изменяется во времени от 0 - XY (т.е. 100) символов. Я хочу использовать его, чтобы увидеть прогресс в процентах: echo -ne "$progress % \\r"
Как я могу это сделать в цикле? do_something > file.txt
должен начинаться только один раз. В ближайшие ~ 5-20 секунд он печатает точки во второй строке, и я должен каждый раз обновлять это число до моего выходного эха «XY%».
Как я могу читать из file.txt каждый второй и найти там «новый/обновленный» количество символов * < редактировать
редактировать: * это процесс в режиме реального времени. My do_something> file.txt - это «печать» точек в этом файле, и я хочу, чтобы результат печати сохранялся в $ progress в режиме реального времени. Таким образом, первая команда печати точек в файл, и я их подсчета в режиме реального времени, каждый второй и распечатать сколько процентов сделано от 0-100%
Когда вы хотите остановить печать? – geckon
Я бы прекратил печатать, когда вторая строка file.txt достигает 100 символов. – pEpe
См. Мой обновленный ответ (http://stackoverflow.com/a/30396366/4408382) и дайте мне знать, если он сработает для вас. – geckon