Запуск команды, когда диалоговое окно zenity отображается в bash - PullRequest
2 голосов
/ 24 декабря 2011

Я хочу показать информационное окно или общее сообщение при выполнении команды в фоновом режиме, но я не могу найти вариант сделать это с zenity. Возможно ли это в первую очередь?

Примером может быть это, для лучшего объяснения

#!/bin/bash
zenity --info --text "I'm doing big things behind this window!"
any_command

При этом any_command (который, очевидно, является заполнителем для ... любой команды, которую вы хотите: D) будет выполняться ТОЛЬКО ПОСЛЕ того, как я закрою информационное окно. Могу ли я запустить оба приложения одновременно, не используя индикатор выполнения? И возможно ли, когда any_command заканчивается, убивает предыдущее информационное окно и отображает другое? (Или измените текст в первом, это не имеет значения ...)

Я мог бы сделать

zenity --info --text "I've done this: `any_command`"

но это оставляет меня без какого-либо уведомления о том, что происходит.

Ответы [ 2 ]

5 голосов
/ 24 декабря 2011

Как насчет отправки вашего первого zenity на задний план и его уничтожения после выполнения команды?

#! /bin/bash
zenity --info --text="Running something, sit tight." &
zpid=$!
sleep 10
kill $zpid
zenity --info --text="Done :)"
0 голосов
/ 23 января 2013

Попробуйте это в командной строке:

zenity --info --text="listing files" && ls -l > temp.txt |\
  zenity --progress --pulsate && \
  zenity --text-info --filename=temp.txt --width=800 --height=600
...