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 --versionSe 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 zenityPara sistemas baseados em RedHat:
dnf install zenityPara sistemas baseados em Arch:
pacman -S zenityOpçõ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
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
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
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
fi4. Uma Caixa de Diálogo de Aviso
zenity --warning --title="Atualização Disponível" --text="Atualização do SO necessária" --width=200Notificaçã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 --calendarSaída:
17/04/21
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
Você também pode dar uma caixa de seleção com a opção –list para seleção múltipla.

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|FirefoxCaixa 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-paletteCaixa 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 "/"
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 --pulsatePara mais opções de progresso, execute o seguinte comando no terminal
zenity --help-progressPara 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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.

