fim prematuro do arquivo [RESOLVIDO]

13. Re: fim prematuro do arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/07/2011 - 15:22h

Você conhece o mochileiro das galaxias , muito legal esse livro!

Agora já está quase tudo funcionando, já resolvi o problema referente a pergunta do tópico, que era apenas a falta de um "}" ao final de uma função... poxa, fiquei até chateado, o bash podia ter explicado isso melhor, mas enfim... Fiz algumas outras correções também, observando os espaços das variáveis como propôs, vi que realmente o bash diferencia isso. Ativei o logfile que faltava implementar e o ping eu usei suas dicas também mas fiz um pouco diferente, ficou assim:

net=$(ping -c 1 `ip r | grep default | cut -d ' ' -f 3` 1>/dev/null 2>/dev/null || printf "desconectado")
if [ "$net" == "desconectado" ]; then
clear && printf "\n\n Voce deve estar conectado a internet para executar esse script\n\n"
exit
fi

Desse jeito ele checa direto com o gateway para verificar a conexão, usei os "/dev/null" só para não mostrar as saídas dos comandos na tela. Depois só faço a checagem da variável de retorno.

Também mudei todos os echo's para printf's, pois acho que fica mais organizado com printf.

A única coisa que estou tento dificuldade é com a função FixRootTheme()... não sei porque, mas sempre que ela é executada ela para antes de executar qualquer outra coisa que venha depois dela e segue para o próximo menu ( no caso Menu2())

basicamente a função é isso:

ln -s ~/.themes /root/.themes 1>> $LOGPATCH 2>> $LOGPATCH
ln -s ~/.icons /root/.icons 1>> $LOGPATCH 2>> $LOGPATCH
ln -s ~/.fonts /root.fonts 1>> $LOGPATCH 2>> $LOGPATCH

Eu coloquei a execução desta no final, assim ela não para nenhuma outra função... mas fiquei intrigado com isso.

Deixo o link do script atualizado:

http://paste.ubuntu.com/652585/

EDIT: Acabei de perceber a falha rs, estou executando o script como root então ~/.themes não é o meu usuário...

Agora sim ferrou kk, supondo que eu não saiba o nome do meu usuário, como proceder nessa situação?


  


14. dica

Hudson Moreira Guimaraes dos Santos
hudyfx

(usa Outra)

Enviado em 26/07/2011 - 18:45h

bom... nesse caso eu usaria a variavel de ambiente $HOME como parâmetro de entrada para o seu script

no shell script existem formas de se passar argumentos para o arquivo de lote, por exemplo:
crie um script teste.sh com o seguinte conteudo...

#!/bin/bash
echo "saida 1 = $1"
echo "saida 2 = $2"
echo "saida 3 = $3"
echo "saida 4 = $4"

depois execute

$ ./teste.sh 42 eh a resposta

saida 1 = 42
saida 2 = eh
saida 3 = a
saida 4 = resposta

cada conjunto de caracteres (lembrando que se for números ele encara como inteiro e letra como string se bem que essa forma de pensar não é a mais correta) é passado para dentro do script como uma variável contendo um valor correspondente nua ordem numérica $1,$2,$3,$4,$5...

agora no caso do seu script eu faria assim
.
.
.
ln -s $1/.themes /root/.themes 1>> $LOGPATCH 2>> $LOGPATCH
ln -s $1/.icons /root/.icons 1>> $LOGPATCH 2>> $LOGPATCH
ln -s $1/.fonts /root.fonts 1>> $LOGPATCH 2>> $LOGPATCH
.
.
.
e na hora de executar o script eu faria assim:
$ sudo ./seuscript.sh $HOME

a variável home do usuário entraria dentro de $1 colocando tudo no seu lugar rsrsrs
ve se resolve... falowww




15. Re: fim prematuro do arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/07/2011 - 02:52h

Putz, nem pensei nisso, caiu como uma luva.

Olha, você está me acostumando mal hem, desse jeito eu relaxo, não pode não kk

Atualizado: http://paste.ubuntu.com/652875/

Agora só falta criar a sessão das configurações avançadas que comecei e parei no meio hihi

vlw hudyfx



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts