[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RESOLVIDO] Re: saber o local onde o script está gravado
From: |
Cristiano |
Subject: |
[RESOLVIDO] Re: saber o local onde o script está gravado |
Date: |
Sun, 17 Mar 2013 21:59:54 -0000 |
User-agent: |
eGroups-EW/0.82 |
PS:
Antes que alguém se pergunte: qual o problema de usar o "recurso técnico".
Respondo:
1) Não funciona quando você chama o script de um sub-diretório do próprio
diretório onde script está gravado (retorna ".."). Até dá considerar e tratar
isso no teste, mas você teria que ficar navegando pela estrutura de diretórios
e isso não é legal;
2) Se você fizer um symlink apontando para o script em outro diretório e
executá-lo à partir dele, seja pelo endereço absoluto ou relativo, não tem
"gambi" que resolva.
--- Em address@hidden, "Cristiano" <boxferrari@...> escreveu
>
> Bah! hoje é o dia das auto-respostas (http://bit.ly/1420ARm)
>
> SCRIPT=$(readlink -f $0)
> SCRIPTPATH=$(dirname $SCRIPT)
>
> Google em inglês funciona melhor que em português.
>
>
> --- Em address@hidden, "Cristiano" <boxferrari@> escreveu
> >
> > Salve Ilustres, boa tarde.
> >
> > Senhores, preciso de alguma maneira de saber, dentro de um script, o
> > endereço absoluto (à partir do raiz) do próprio script.
> >
> > Já tentei usar o comando pwd, mas ele só funciona se o script foi executado
> > de dentro do PROPRIO diretório (./script.sh, por exemplo). Se ele for
> > chamado pelo endereço absoluto à partir de outro diretório, retorna o path
> > do diretório à partir do qual foi executado.
> >
> > Também tentei usar o parâmetro $0 combinado com o comando dirname. Mas aí o
> > problema é ao inverso: Funciona quando se chama à partir de outro diretório
> > mas não dá certo quando se chama o script à partir do mesmo diretório.
> >
> > O "recurso técnico" foi usar a segunda opção e testar se o caminho recebido
> > é igual a "." Se for, troca ele pelo resultado do pwd.
> >
> > Alguém conhece uma solução que não envolva o teste?
> >
> > Abraço
> >
> >
> > Cristiano Ferrari
> >
>