Допустим, нужно написать скрипт визуализации прогресса проверки файловой системы (e2fsck) с помощью пакета "dialog."
e2fsck -С1 выдвет информацию в таком виде:
Напр:
. . .
4 56 62 /
4 57 62 /
4 58 62 /
4 59 62 /
4 60 62 /
4 61 62 /
4 62 62 /
Pass 5: Checking group summary information
5 0 124 /
5 1 124 /
5 2 124 /
5 3 124 /
. . .
Но вот с помощью каких средств разобрать выход программы e2fsck и подать их на вход программы dialog --gauge не понятно.
Надо, как я понимаю, выход этой программы обработать напр так:
Считать в некую переменную строку от начала строки до косой четры "/"
если первая цифра от e2fsck == 1, записать в некую переменную E2FSCK_PROGRESS=`expr 20 * 100 * вторая_цифра_в_столбике / третья_цифра_в_столбике`
если первая цифра от e2fsck == 1, записать в некую переменную E2FSCK_PROGRESS=`expr 40 * 100 * вторая_цифра_в_столбике / третья_цифра_в_столбике`
. . .
echo $E2FSCK_PROGRESS | dialog --title "проверка файловой системы" --gauge #по циклу, пока работает e2fsck
В простейшем случае, прогресс bar c шагом пять:
(while 1
do
sleep 1
echo $PCT
PCT=`expr $PCT + 5 `
then
echo 99
sleep 1
echo 100
break
fi
done ) | $DIALOG --title "проверка файловой системы" --gauge
Но вот с помощью каких средств разобрать выход программы e2fsck и подать их на вход программы dialog --gauge не понятно. :(
Пропадаю.
Спасибо.