ShellScript Duvida de como fazer uma instrução simples de achar a pasta pessoal!

Iniciado por leandro.miranda, 08 de Agosto de 2006, 18:23

tópico anterior - próximo tópico

leandro.miranda

BOm pessoal eu fiz um script dentro de um botão com o Kommander, ao clicar no botão ele faz a seguinte funções!

# PERGUNTA SE QUER FAZER O DOWNLOAD SE A RESPOSTA FOR SIM ELE EXECUTA O XTERM COM O ARGUMENTO WGET
kdialog --yesno "Deseja Fazer Download da imagem ISO com 700MB?" --title "Fazer Download Agora?";
if [ "$?" = "1" ]; then
exit 0
fi
xterm -e wget -P naUnha/CD-DVD/ -c http://localhost/unha-ubuntu6.06-0.01.iso;

#APOS FAZER O DOWNLOAD PERGUNTA SE VOCÊ DESEJA QUE SEJA ABERTO O GERENCIADOR DE ARQUIVO NO LOCAL QUE FOI SALVO A ISO!

kdialog --yesno "Download Completo Realizado. Deseja Abrir a pasta que contem a ISO?";
if [ "$?" = "1" ]; then
exit 0
fi
konqueror /home/$user/naUnha/CD-DVD/
fi


Na penultima linha: konqueror /home/$user/naUnha/CD-DVD/ --- nao funciona, o script não acha o nome do usuário que está sendo utilizado na sessão. Alguem sabe como eu posso fazer pra identificar o usuário que está utilizando o script complementar a URL para o Konqueror possa abrir o endereço correto?
Obrigado,

Ass. Leandro Miranda

Lamego

Primeiro uma correção:
if [ "$?" = "1" ]; then
deveria ser:
if [ $? -eq 1 ]; then
isto porque $? é um numero e não uma string

Em relação ao seu problema, o nome do usuario é $USER em maiuscula, as variaveis são "case sensitive" .


João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

Xterminator

Não sei pra que serve, mas se fosse uma versão GNOME seria assim  utilizando zenity ;-)
o único erro realmente é a variável $USER que o colega acima citou, a outra "if [ "$?" = "1" ]; then" passou batido, só pra constar caso alguém deseje usar, logicamente tem que ter uma URL válida.
# PERGUNTA SE QUER FAZER O DOWNLOAD SE A RESPOSTA FOR SIM ELE EXECUTA O XTERM COM O ARGUMENTO WGET
zenity --question --text="Deseja Fazer Download da imagem ISO com 700MB?" --title "Fazer Download Agora?";
if [ "$?" = "1" ]; then
exit 0
fi
xterm -e wget -P naUnha/CD-DVD/ -c http://localhost/unha-ubuntu6.06-0.01.iso;

#APOS FAZER O DOWNLOAD PERGUNTA SE VOCÊ DESEJA QUE SEJA ABERTO O GERENCIADOR DE ARQUIVO NO LOCAL QUE FOI SALVO A ISO!

zenity --question --text="Download Completo Realizado. Deseja Abrir a pasta que contem a Imagem ISO?";
if [ "$?" = "1" ]; then
exit 0
fi
nautilus /home/$USER/naUnha/CD-DVD/


AlexBR

O diretório do usuário pode ser subistituído pelo dígito ~ (til). Por exemplo, ~/Desktop.

Lamego

CitarNão sei pra que serve, mas se fosse uma versão GNOME seria assim  utilizando zenity ;-)
o único erro realmente é a variável $USER que o colega acima citou, a outra "if [ "$?" = "1" ]; then" passou batido, só pra constar caso alguém deseje usar, logicamente tem que ter uma URL válida.
"if [ "$?" = "1" ]; then" funciona mas não é a forma correcta de utilizar, o $? não retorna texto mas sim um número, e os numeros deve sem comparados com -eq não com "=" .
CitarO diretório do usuário pode ser subistituído pelo dígito ~ (til). Por exemplo, ~/Desktop.
A outra forma é utilizar a variavel $HOME/desktop .
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

leandro.miranda

Pessoal estou fazendo duas interfaces graficas pra Instalar as atualizações nas maquinas na rede tudo pelos botões, como são muitas maquinas vou remasterizar um CD com os pacotes como esse link mostra http://wiki.ubuntubrasil.org/Utilitarios/UbutonCacheRescue e em seguida eu vou criar um painel onde eu clico nos botões e ele instala. A unica coisa que muda sempre é o nome de usuário e por isso eu estou precisando dessa ajuda de vocês, os ambientes que aqui na empresa são utilizados são KDE e Gnome.
Obrigado,

Ass. Leandro Miranda

Lamego

Leandro,
não entendo a lógica do script para o seu objectivo das actualizações.
As actualizações não sao para ocorrer em todos os sistemas ? É preciso os utilizadores responderem a algo ?

Se todos esses computadores estão em rede o mais fácil seria configurar um deles como servidor de APT.
Depois bastaria colocar uma entrada no /etc/apt/sources.list para esse servidor e dar um
sudo apt-get update && sudo apt-get upgrade
Ainda que fizesse isso com botões ficara bem mais fácil do que andar a distribuir o ISO .
Não sei se o Kubuntu tem zenity, se tiver talvez seja uma melhor opção porque funcionaria em ambos os sistemas, tambem pode utilizar o xdialog, mas teria que ser instalado.
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

leandro.miranda

Meu brother, corrigi o codigo e deixei ele com as suas observações e rodou perfeitamente! Obrigado!

# PERGUNTA SE QUER FAZER O DOWNLOAD SE A RESPOSTA FOR SIM ELE EXECUTA O XTERM COM O ARGUMENTO WGET
kdialog --yesno "Deseja Fazer Download da imagem ISO com 700MB?" --title "Fazer Download Agora?";
if [ "$?" -eq "1" ]; then
exit 0
fi
xterm -e wget -P naUnha/CD-DVD/ -c http://localhost/unha-ubuntu6.06-0.01.iso;

#APOS FAZER O DOWNLOAD PERGUNTA SE VOCÊ DESEJA QUE SEJA ABERTO O GERENCIADOR DE ARQUIVO NO LOCAL QUE FOI SALVO A ISO!

kdialog --yesno "Download Completado! Deseja Abrir a pasta que contém a ISO?" --title "Download Finalizado!";
if [ "$?" -eq "1" ]; then
exit 0
fi
konqueror /home/$USER/naUnha/CD-DVD/
fi



Citação de: Lamego online 08 de Agosto de 2006, 18:44
Primeiro uma correção:
if [ "$?" = "1" ]; then
deveria ser:
if [ $? -eq 1 ]; then
isto porque $? é um numero e não uma string

Em relação ao seu problema, o nome do usuario é $USER em maiuscula, as variaveis são "case sensitive" .



Obrigado,

Ass. Leandro Miranda

leandro.miranda

Eu não sei como fazer isso, preciso fazer um espelho do repositorio na minha maquina e todas as outras baixam os pacotes apartir da minha maquina? é isso? VOcê tem alguma referencia onde eu possa ler e testar isso?

Citação de: Lamego online 09 de Agosto de 2006, 08:17
Leandro,
não entendo a lógica do script para o seu objectivo das actualizações.
As actualizações não sao para ocorrer em todos os sistemas ? É preciso os utilizadores responderem a algo ?

Se todos esses computadores estão em rede o mais fácil seria configurar um deles como servidor de APT.
Depois bastaria colocar uma entrada no /etc/apt/sources.list para esse servidor e dar um
sudo apt-get update && sudo apt-get upgrade
Ainda que fizesse isso com botões ficara bem mais fácil do que andar a distribuir o ISO .
Não sei se o Kubuntu tem zenity, se tiver talvez seja uma melhor opção porque funcionaria em ambos os sistemas, tambem pode utilizar o xdialog, mas teria que ser instalado.

Obrigado,

Ass. Leandro Miranda

leandro.miranda

Amigão a parada o $USER funcionou aqui no KDE e no Gnome tambem! Muito Obrigado!

Citação de: Xterminator online 08 de Agosto de 2006, 20:46
Não sei pra que serve, mas se fosse uma versão GNOME seria assim  utilizando zenity ;-)
o único erro realmente é a variável $USER que o colega acima citou, a outra "if [ "$?" = "1" ]; then" passou batido, só pra constar caso alguém deseje usar, logicamente tem que ter uma URL válida.
# PERGUNTA SE QUER FAZER O DOWNLOAD SE A RESPOSTA FOR SIM ELE EXECUTA O XTERM COM O ARGUMENTO WGET
zenity --question --text="Deseja Fazer Download da imagem ISO com 700MB?" --title "Fazer Download Agora?";
if [ "$?" = "1" ]; then
exit 0
fi
xterm -e wget -P naUnha/CD-DVD/ -c http://localhost/unha-ubuntu6.06-0.01.iso;

#APOS FAZER O DOWNLOAD PERGUNTA SE VOCÊ DESEJA QUE SEJA ABERTO O GERENCIADOR DE ARQUIVO NO LOCAL QUE FOI SALVO A ISO!

zenity --question --text="Download Completo Realizado. Deseja Abrir a pasta que contem a Imagem ISO?";
if [ "$?" = "1" ]; then
exit 0
fi
nautilus /home/$USER/naUnha/CD-DVD/


Obrigado,

Ass. Leandro Miranda