Я пытаюсь разработать приложение в bash
который может отобразить терминальные достижения журналов по yad (еще одно Диалоговое окно) диалоговое окно. Можно рассмотреть это точно так же, как установка окон, где это отображает все файлы, которые явлены установлены чуть ниже индикатора выполнения. Я отослал это сообщение для своей работы, но к сожалению это не работало. Я запускаю скрипт установки как пользователь root.
Я пробую это с прошедших нескольких дней, но не мог получить успех. Я пытался сохранить журнал в текстовом файле и, чем копия это назад к диалоговому окну, но вмятина процесса удается. Может любой указывать на меня в правильном направлении.Заранее спасибо.
Вот мой код в bash
со снимком экрана вывода.
yad --form --seperator='\n' --columns=2 --quoted-output \
--field="$MSP:FBTN" "bash -c sersoft" # from here I call the function sersoft
sersoft()
{
some_funct
if [ "$ret_val" == 3 ] || [ "$ret_val" == 4 ]; then
krel=$(uname -r | cut -b 1-10)
ufw disable
apt-get update -y
apt-get upgrade -y
apt-get -y install gcc g++ libpcap0.8-dev build-essential
# few more apt-get's and finally
apt-get -y update
apt-get -y upgrade
elif [ "$ret_val" == 5 ]; then
systemctl stop firewalld
systemctl disable firewalld
yum groupinstall "Development Tools"
# few more yum installs's and finally
yum -y update
yum -y upgrade
fi | tee response.txt | yad --progress --pulsate --auto-close
response=$( cat response.txt )
}
export -f sersoft
Это:
${command} |
while read -r line; do echo "# ${line}"; done |
yad ${config} --title="${title}"
<час> С обработкой ошибок:
#! /bin/bash
# (GPL3+) Alberto Salvia Novella (es20490446e.wordpress.com)
mainFunction () {
title="${1}"
command="${2}"
log="/tmp/$(date +%s)"
config="--progress --pulsate --center --no-buttons --auto-close --progress-text='Working...' --width=800"
${command} 2> "${log}" |
while read -r line; do echo "# ${line}"; done |
yad ${config} --title="${title}"
checkErrorLog "${log}"
}
checkErrorLog () {
log="${1}"
error=$(cat "${log}")
rm "${log}"
if [ "${error}" != "" ]; then
echo "${error}" >&2
errorWindow "${error}"
exit 1
fi
}
errorWindow () {
error="${1}"
config="--center --button=OK:1"
yad ${config} --title="Error" --text="${error}"
}
mainFunction "Ping" "ping google.com -c5"