индикатор выполнения yad с терминальным выводом

Я пытаюсь разработать приложение в 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

Progress Log

2
задан 13 April 2017 в 15:25

1 ответ

Это:

${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"
2
ответ дан 2 December 2019 в 03:43

Другие вопросы по тегам:

Похожие вопросы: