É mais enrrolado do que eu pensava...
Fiz uns testes com a sugestão do Emerson, simplifiquei um pouco para isto:
DIR=$(dirname $(which $0))
Mas será que vai funcionar sempre?
A solução do Julio é ok, mas tenho um certo receio de mudar de diretório
e alguma coisa dar errado no meio.
Outra alternativa seria reformular o problema: eu só pretendo é executar
um outro script que está no mesmo diretório... será que isto resolve:
NOVO=$(dirname $0)/script2.sh
???
Agradeço a atenção,
Alain
Julio C. Neves escreveu:
> Alain,
> o cmd dirname te devolve o caminho relativo. Entao uma forma de resolver
> isso eh:
> cd $(dirname $0)
> pwd
> cd -
>
> [ ]s,
> Julio
> :wq
>
> Alain wrote:
>
>
>>Como eu acho em que diretório está o script atual? Eu sei que $0 tem o
>>nome completo, o comando abaixo faz o inverso, ou seja me dá só o nome
>>mas eu quero só o diretório. Exemplo
>>
>>$0 é /opt/bin/firefox.sh
>>eu quero /opt/bin
>>
>>Assim eu posso chamer o outro script firefoxrun.sh que está no mesmo
>>diretório, mesmo se mudarem ele de lugar.
>>
>>grato,
>>Alain
>>
>>Tiago Barcellos Peczenyj escreveu:
>>
>>
>>
>>>O que é mais formal:
>>>
>>>[ "${1}" ] || { echo "usage: $(basename $0) parametro" ; exit 1; }
>>>
>>>ou
>>>
>>>if [ "${1}" ]
>>>then echo "usage..."
>>>exit 1
>>>fi
>>>
>>>geralmente eu gosto da primeira notação, é mais sucinta. mas ela possui
>>>algum tipo de problema, digamos, alguma incompatibilidade com outros shells,
>>>ou tem alguma sutileza que a forma if then fi não possui ?
>>>
>>>As duas funcionam, entretanto.
>>>Em 06/12/05, Fernando Lemes da Silva <[EMAIL PROTECTED]> escreveu:
>>>
>>>
>>>
>>>
>>>> Não querendo contribuir com o flame, mas sim com o propósito de se
>>>>escrever
>>>>um bom código, eu considero sim uma boa prática proteger conteúdo de
>>>>variáveis, definir bem o que é uma variável (${VAR})..
>>>>
>>>> Além ter tornar as coisas mais fáceis de ler, depois que voce precisar
>>>>olhar de novo o mesmo código, isto poderia previnir que numa alteração
>>>>futura
>>>>do script o mesmo parasse de funcionar porque não foi cogitado que alguma
>>>>variável poderia ter espaços um dia (exemplo)...
>>>>
>>>> []'s
>>>>
>>>>--
>>>> /**********************************************
>>>> _ Fernando Lemes da Silva
>>>> °v° www.koho.com.br
>>>> /(¡)\ Linux user [EMAIL PROTECTED]
>>>> ^ ^ lICQ UIN 2371843
>>>> echo 396752965710071000896145190854552842P | dc
>>>> **********************************************/
>>>>
>>>>Em Seg 05 Dez 2005 20:44, Herbert Alexander Faleiros escreveu:
>>>>
>>>>
>>>>
>>>>
>>>>>On Monday 05 December 2005 11:43, Emerson Domingues Souto wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>o colega Herbert parece não prestar muita atenção a essas práticas
>>>>>>
>>>>>>
>>>>>
>>>>>Se querem gerar código redundante/desnecessário é com vocês.
>>>>>Por que eu aplicaria algo desnecessáriamente se sei o que estou fazendo?
>>>>>E igual aquela história de executar rm -rf para qualquer coisa ou dizer
>>>>>
>>>>>
>>>>
>>>>que
>>>>
>>>>
>>>>
>>>>
>>>>>sei que algo é um diretório porque apareceu "azul" aqui no meu terminal.
>>>>>Putz, isso já tá virando flame (fico por aqui)...
>>>>>
>>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>Esta lista não admite a abordagem de outras liguagens de programação, como
>>>>perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
>>>>aviso.
>>>>---------------------------------------------------------------------
>>>>Sair da lista: [EMAIL PROTECTED]
>>>>---------------------------------------------------------------------
>>>>Esta lista é moderada de acordo com o previsto em
>>>>http://www.listas-discussao.cjb.net
>>>>---------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>*Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE
>>>>
>>>><http://br.rd.yahoo.com/SIG=12f8o68ob/M=384888.7585449.8468440.1588051/D=brclubs/S=2137111254:HM/Y=BR/EXP=1133844006/A=3154525/R=0/SIG=12igfl26t/*http://www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE>
>>>>------------------------------
>>>>*Links do Yahoo! Grupos*
>>>>
>>>> - Para visitar o site do seu grupo na web, acesse:
>>>> http://br.groups.yahoo.com/group/shell-script/
>>>>
>>>> - Para sair deste grupo, envie um e-mail para:
>>>> [EMAIL PROTECTED]<[EMAIL PROTECTED]>
>>>>
>>>> - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>>>> Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>>>>
>>>>
>>>>
>>>>
>>>
>>>[As partes desta mensagem que não continham texto foram removidas]
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>Esta lista não admite a abordagem de outras liguagens de programação, como
>>>perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
>>>aviso.
>>>---------------------------------------------------------------------
>>>Sair da lista: [EMAIL PROTECTED]
>>>---------------------------------------------------------------------
>>>Esta lista é moderada de acordo com o previsto em
>>>http://www.listas-discussao.cjb.net
>>>---------------------------------------------------------------------
>>>
>>>Links do Yahoo! Grupos
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>---------------------------------------------------------------------
>>Esta lista não admite a abordagem de outras liguagens de programação, como
>>perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
>>aviso.
>>---------------------------------------------------------------------
>>Sair da lista: [EMAIL PROTECTED]
>>---------------------------------------------------------------------
>>Esta lista é moderada de acordo com o previsto em
>>http://www.listas-discussao.cjb.net
>>---------------------------------------------------------------------
>>
>>Links do Yahoo! Grupos
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html