Dúvida em Shell Script

Iniciado por Joker, 23 de Julho de 2008, 10:20

tópico anterior - próximo tópico

Joker

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'

Fernando Pinheiro

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!

clcampos

Citação de: Joker online 23 de Julho de 2008, 10:20
....

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ê fezArea \de \Trabalho

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

voyeg3r

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