ajuda com shell script

Iniciado por cavera37, 15 de Outubro de 2007, 12:33

tópico anterior - próximo tópico

cavera37

oi galera
meu problema é o seguinte  a um tempo atras algumas pessoas  da impresa da minha mãe tavam tendo o seguinte problema:
o sistema inteiro  funciona em linux com um servidor central  usando fedora 6  so q alguns computadores aqui da empresa se logam por fora do servidor e as vezes elas precisam entrar no servidor usando  ssh e vncserver elas tavam tendo problemas  para digitar estes comando básico entao eu criei um shell script q fazia isso quase automaticamente para eles:

#!/bin/bash
#--------------- início do programa ---------------
echo "escolha uma das opções abaixo:"
echo
echo "[1] logar-se como usuario_padrao do script"
echo "[2] logar-se com outro usuário"
echo "[3] matar processo do vnc"
read opc
clear
#--------------- processa a opção -----------------
if [ $opc == 1 ]
then
ssh usuário_padrao@192.168.200.200 vncserver
vncviewer
elif [ $opc == 3 ]
then
echo "digite o usuário em que você estava logado no servidor:"
read logusr
echo
echo "agora digite o número do processo do vnc (ex: 1, 2, etc.)"
read proc
#---------------- mata processo --------------------
ssh $logusr@host vncserver -kill :$proc
else
echo "digite o usuário para se logar no servidor"
read usr
#---------------- conecta e executa o vncserver e vncviewer----------------
ssh $usr@host vncserver
vncviewer
fi

bom o código funciona perfeitamente so q eu gostaria de fazer uma versão do programa com janelas gráficas so q tenho uma duvida  como eu faria para a pessoa digitar a senha de seu usuário quando eu do o comando ssh ?????

brunu

Cavera,
Já utilizei o kdialog algumas vezes, mas recomendo p/ distro com interface kde, pois é nativo.
ex:
user=`kdialog --inputbox "Digite o nome do usuário"`
Isto irá imprimir uma janela gráfica aguardando q o usuário insira um valor e guardará o msm na variável $user.

Dê uma olhada também neste artigo:
http://www.guiadohardware.net/tutoriais/programando-shell-script/fazendo-perguntas.html
Bruno
Salvador-BA

alarcon

#2
Veja se o pacote Zenity está instalado na distribuição linux que você usa. No Ubuntu já vem instalado.

O Zenity é para ser usado em distribuições linux que usam interface gráfica Gnome e não KDE, para ele usa-se o Kdialog, porém é mais chato por que muitas vezes o terminal via usuário comum não tem permissão para rodar nada gráfico chamado pelo terminal, já no Gnome isso não ocorre.

Se o zenity estiver instalado, veja se assim resolve o seu problema:

#!/bin/bash

#--------------- início do programa ---------------
if opc=$(zenity --text "Escolha uma das opções abaixo:" --list --radiolist --width=600 --height=200 --column="" --column "Opções" --column "Descrição" FALSE 1 "Logar-se como usuario_padrao do script" FALSE 2 "Logar-se com outro usuário" FALSE 3 "Matar processo do vnc" 2>&1) ; then

#--------------- processa a opção -----------------
if [ $opc == 1 ]
then
ssh usuário_padrao@192.168.200.200 vncserver
vncviewer
elif [ $opc == 3 ]
then

logusr=$(zenity --entry --text "Digite o usuário em que você estava logado no servidor:" 2>&1)


proc=$(zenity --entry --text "Agora digite o número do processo do vnc (ex: 1, 2, etc.)" 2>&1)

#---------------- mata processo --------------------
ssh $logusr@host vncserver -kill :$proc
else

usr=$(zenity --entry --text "Digite o usuário para se logar no servidor" 2>&1)

#---------------- conecta e executa o vncserver e vncviewer----------------
ssh $usr@host vncserver
vncviewer
fi

else

exit 0

fi

cavera37

#3
ta funcionando a parte grafica direitinho mas ele ta  dando um erro bizarro  quando eu escolho  outras opções (tipo a opção 1 e 3) quando eu escolho elas  ele vai ppra opção 2 no caso o else e me da o erro:
[: 34: ==: unexpected operator
[: 34: ==: unexpected operator


EDIT
o erro era o seguinte  o operador de igualdade é -eq nao ==

brigadão galera eu vo faze um programa usando os dois estilo dialog e zenity  pq eu gosto  do estilo do dialog tipo clipper e pq zenity é bonito e pratico também