Bash Scripting · 5 min read · Nov 10, 2025

Como exibir diálogos GUI em script bash usando Zenity

Todos nós sabemos que os scripts bash do Linux são uma verdadeira força do Linux. Muitas vezes, queremos exibir uma interface gráfica do usuário (GUI) em nossos scripts para facilitar a interação com os usuários. A GUI torna qualquer script mais amigável e bonito.

Para GTK em scripts de shell, existem muitas opções e ferramentas disponíveis no Linux.

Neste artigo, mostraremos como usar o Zenity para exibir diálogos GUI em scripts Bash.

Zenity é um aplicativo de código aberto para exibir uma GUI simples em scripts de shell. Ele torna os scripts mais amigáveis ao exibir diálogos GTK+. Zenity é uma ferramenta de linha de comando útil para scripts de shell modernos. Zenity é fácil de usar e um aplicativo multiplataforma.

Pré-requisitos

Um usuário sudo com privilégios de root.

Instalar Zenity

Zenity é parte do desktop GNOME e, por padrão, está instalado na maioria das distribuições Linux. Você pode verificar a instalação do Zenity em seu sistema executando o seguinte comando no terminal.

zenity --version

Se o Zenity não estiver instalado em seu sistema, você pode instalá-lo usando o comando Apt, dnf ou pacman.

Para sistemas baseados em Ubuntu/Debian:

sudo apt-get install zenity

Para sistemas baseados em RedHat:

dnf install zenity

Para sistemas baseados em Arch:

pacman -S zenity

Opções gerais do Zenity

Existem algumas opções gerais que podem ser usadas com o Zenity de forma independente. As opções gerais são –title, –window-icon, –width, –height, –timeout

Você pode usar a opção —title para especificar um título para a janela de diálogo.

Você pode usar a opção –window-icon para especificar um ícone que será usado como ícone para a Caixa de Diálogo Zenity.

Não só isso, mas você pode definir a largura e a altura da Caixa de Diálogo Zenity definindo as opções –width e –height no comando Zenity.

Usando a opção –timeout, você pode definir um tempo limite para o diálogo, após o qual a caixa de diálogo será fechada automaticamente.

Caixa de Mensagem Zenity

Você pode criar alguns diálogos de mensagem GUI básicos e agradáveis usando um simples comando Zenity no terminal.

Quatro tipos de diálogos de mensagem estão disponíveis no Zenity.

  • Informação
  • Erro
  • Pergunta
  • Aviso

1. Uma Caixa de Diálogo de Informação

Você pode criar uma Caixa de Diálogo de Informação executando o seguinte comando no terminal:

zenity --info --text="Atualização de Software Disponível." --width=500

Exibir diálogo de texto informativo usando script bash

2. Uma Caixa de Diálogo de Erro

Execute o seguinte comando para exibir a caixa de diálogo de erro

zenity --error --text="Erro na Instalação" --title="Erro" --width=500 --height=200

Mostrar diálogo de erro usando script bash

3. Uma Caixa de Diálogo de Pergunta

Você pode facilmente fazer uma pergunta de sim ou não executando o seguinte comando:

zenity --question --text="Você deseja reiniciar o pc?" --width=200

Caixas de diálogo em bash
Você pode usar o Diálogo de Pergunta do Zenity em um script de shell assim:

#/bin/bash  
touch demo.txt  
if zenity --question --title="Confirmar exclusão" --text="Você tem certeza de que deseja excluir o arquivo demo.txt?" --no-wrap  
    then  
    rm demo.txt  
    zenity --info --title="Sucesso" --text="demo.txt foi removido" --no-wrap  
fi

4. Uma Caixa de Diálogo de Aviso

zenity --warning --title="Atualização Disponível" --text="Atualização do SO necessária" --width=200

Bash mostrar caixa de diálogo de aviso

Notificação

Você pode exibir Notificações usando Zenity.

zenity --notification --text "Bom Dia"

Caixas de Entrada Zenity

Usando Zenity, você pode criar caixas de diálogo simples que recebem entrada do usuário e a exibem como saída padrão.

Aqui estão algumas caixas de entrada:

Calendário

A caixa de diálogo do Calendário exibe um calendário e retorna a data selecionada pelo usuário como saída padrão.

zenity --calendar
Saída:  
17/04/21

Entrada de calendário a partir do script bash

Caixa de Entrada de Texto

Você pode usar a opção –entry para criar uma caixa de entrada de texto. É muito útil quando você deseja pedir ao usuário para inserir algum texto.

zenity --entry --title "Informações do Usuário" --text "Por favor, insira seu nome"

Caixa de Diálogo de Lista

Você pode usar a opção –list para criar um diálogo de múltiplas colunas. Aqui você precisa inserir dados para a coluna do diálogo de lista coluna por coluna, linha por linha. Você pode usar caixa de seleção ou botão de opção com a caixa de diálogo de lista, como mostrado abaixo:

zenity --list  --title "Escolher Processador" --radiolist  --column "ID" --column="Nome" 1 AMD 2 Intel

Caixa de Diálogo de Lista

Você também pode dar uma caixa de seleção com a opção –list para seleção múltipla.

Opções de caixa de seleção com bash

zenity --list --title "Pacotes" --text "selecione os pacotes que deseja instalar" --checklist --column "id"  --column "Nome" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Saída  
Google Chrome|VLC|Firefox

Caixa de Seleção de Cores

Você pode usar a opção –color-selection para obter o valor de seleção de cor do usuário.

zenity --color-selection --show-palette

Selecionador de cores de script bash

Caixa de Seleção de Arquivos

Você pode usar a opção –file-selection para capturar arquivos ou diretórios selecionados como saída padrão. Você também pode salvar arquivos usando a opção –file-selection.

zenity --file-selection --multiple --filename "/"

Abrir caixa de seleção de arquivos a partir do bash

Diálogo de Progresso

Você pode criar uma boa barra de progresso usando a opção –progress. Isso é útil muitas vezes, onde você deseja mostrar ao usuário a barra de progresso de conclusão do seu aplicativo ou script.

O comando abaixo mostrará a barra de progresso de download.

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+\.\) \(.*\)/\1\n# Baixando a \2\/s, ETA \3/' | zenity --progress --title="Baixando Arquivo..." --percentage=1 --pulsate

Para mais opções de progresso, execute o seguinte comando no terminal

zenity --help-progress

Para mais opções do Zenity, você pode usar man Zenity e Zenity –help.

Conclusão

No guia acima, você aprendeu como escrever um script bash para exibir diálogos GUI usando Zenity e tornar o script Bash mais amigável. Sinta-se à vontade para me perguntar se você tiver alguma dúvida.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.