Autor Tópico: Dúvida em Shell Script  (Lida 2620 vezes)

Offline Joker

  • Usuário Ubuntu
  • *
  • Mensagens: 1
    • Ver perfil
Dúvida em Shell Script
« Online: 23 de Julho de 2008, 10:20 »
Pessoal, estou tentando criar um script de "instalação" de um programa, porém, necessito guardar o nome do Desktop (ou identificá-lo) pois logo após, dependendo de como está o nome do Desktop, ele dará permissão a um arquivo que fora copiado para lá. Gostaria de saber como proceder, segue abaixo o código:

echo 'Inicializando a instalação do Atualizador 1.0'

# Criação da pasta atualizador dentro do diretório opt e a transferência do Atualizador.jar
# para diretório criado.
cd ~ 
mkdir /opt/atualizador
cp ./Atualizador.jar /opt/atualizador

echo 'Atualizador transferido para /opt/siep'

# Como há mudanças no nome do Desktop em algumas versões do Ubuntu, por segurança, abaixo é
# feito um teste para identificação do nome correto do Desktop da máquina na qual está sendo
# instalado o Atualizador para a criação do atalho.
if [ -e ~/Desktop ] then
   cp ./Atualizador.sh ~/Desktop
   desktop="Desktop"
fi

if [ -e ~/Area \de \Trabalho ] then
   cp ./Atualizador.sh ~/Area \de \Trabalho
   desktop="Area de Trabalho"
fi

if [ -e ~/Área \de \Trabalho ]
   cp ./Atualizador.sh ~/Área \de \Trabalho
   desktop="Área de Trabalho"
fi

# Permição de execução para o atalho criado no Desktop.
chmod +x ~/$desktop/Atualizador.sh


echo 'Atalho do Atualizador criado no Desktop'
echo 'Instalação Finalizada'
« Última modificação: 23 de Julho de 2008, 10:52 por Joker »

Offline Fernando Pinheiro

  • Usuário Ubuntu
  • *
  • Mensagens: 5
    • Ver perfil
Re: Dúvida em Shell Script
« Resposta #1 Online: 24 de Julho de 2008, 19:47 »
Acho que este que você fez tá bom. Só falta adicionar as contra-barras também no conteúdo da variável desktop porque na hora que o shell resolver o nome para dar a permissão, sem as "\" nos nomes espaçados ele vai retornar erro.

Abraços!

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Dúvida em Shell Script
« Resposta #2 Online: 24 de Julho de 2008, 20:05 »
....

if [ -e ~/Area \de \Trabalho ] then
   cp ./Atualizador.sh ~/Area \de \Trabalho
   desktop="Area de Trabalho"
fi

if [ -e ~/Área \de \Trabalho ]
   cp ./Atualizador.sh ~/Área \de \Trabalho
   desktop="Área de Trabalho"
fi

...

As barras estão erradas, não são depois do espaço, e sim antes.

Citação de: Você fez
Area \de \Trabalho

Citação de: Correto
Area\ de\ Trabalho
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline voyeg3r

  • Usuário Ubuntu
  • *
  • Mensagens: 65
    • Ver perfil
    • http://vivaotux.blogspot.com
Re: Dúvida em Shell Script
« Resposta #3 Online: 11 de Agosto de 2008, 08:47 »
Creio que a opção '-d' seria a mais indicada para testar a existência de um diretório,  pois se existir
um arquivo com este nome ele executará o bloco dentro do if do mesmo modo.

Modifiquei apenas o '-e' e coloquei '-d'

if [ -d ~/Area \de \Trabalho ] then
   cp ./Atualizador.sh ~/Area \de \Trabalho
   desktop="Area de Trabalho"
fi