Olá amigo,
veja se assim te atende....
Obs: com isso vc nao precisa nem sequer manipular aquela variavel $flag

#!/bin/bash

# O while será repetido infinitamente
# Até que seja respondido sim na pergunta se deseja ou nao sair

while :
do

if [ $UID -ne 0 ]
then
dialog --title 'Warning!' --msgbox 'Logue-se como ROOT!' 6 40
else
dominio=$(dialog --stdout --inputbox 'Dominio' 7 70)
descricao=$(dialog --stdout --inputbox 'Descricao' 7 70)
cnpj=$(dialog --stdout --inputbox 'CNPJ' 7 70)
endereco=$(dialog --stdout --inputbox 'Endereco' 7 70)
responsavel=$(dialog --stdout --inputbox 'Responsavel' 7 70)
telefone=$(dialog --stdout --inputbox 'Telefone' 7 70)
fi

# Perguntando se deseja sair ou nao
dialog --stdout --yesno 'Deseja Sair?' 0 0

# Se responder 'sim', a variavel '$?' recebe o valor '0'
# Se responder 'nao' a variavel recebe qualquer outro valor
if [ "$?" = "0" ]
then
# Abortando o processo de acordo com a resposta do usuario
    exit

fi

done


jefferson aranha escreveu:
>
> Galera estou com o seguinte script :
>
> #!/bin/bash
>
> flag=1
>
> while [ $flag -ne 0 ]
> do
>
> if [ $UID -ne 0 ]
> then
> dialog --title 'Warning!' --msgbox 'Logue-se como ROOT!' 6 40
> else
> dominio=$(dialog --stdout --inputbox 'Dominio' 7 70)
> descricao=$(dialog --stdout --inputbox 'Descricao' 7 70)
> cnpj=$(dialog --stdout --inputbox 'CNPJ' 7 70)
> endereco=$(dialog --stdout --inputbox 'Endereco' 7 70)
> responsavel=$(dialog --stdout --inputbox 'Responsavel' 7 70)
> telefone=$(dialog --stdout --inputbox 'Telefone' 7 70)
> fi
>
> flag=$(dialog --stdout --yesno 'Deseja Sair?' 0 0)
> done
>
> sendo que ele dá o seguinte erro :
>
> ./teste.sh: line 5: [: -ne: unary operator expected
>
> na linha do while [ $flag -ne 0 ] nao consigo enteder o que há de errado
> nesta condição.
>
>  

Responder a