[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Diferença_entre_sh_<arquivo>_e_./<arquivo>
From: |
fernando . victus |
Subject: |
Re: [shell-script] Diferença_entre_sh_<arquivo>_e_./<arquivo> |
Date: |
Thu, 17 Jun 2004 09:20:56 -0200 |
Aurelio,
Sua explicação foi simplesmente perfeita, até parece que você
professor! Como estou começando com Shell Script (perdoe-me os xiitas do
shell script mas eita coisa complicadinha e nada prática) tenho duvidas
simples, duvidas de conceitos mesmo. Espero poder ajudar a lista ou alguém
que precise quando alcançar maior maturidade com esse tal de Shell Script.
Um forte abraço. E um viva a comunidade livre.
Fernando Dourado.
Analista Desenvolvedor Java
Aurelio Marinho Jargas <address@hidden>
16/06/2004 18:34
Please respond to shell-script
To: address@hidden
cc:
Subject: Re: [shell-script]
Diferença_entre_sh_<arquivo>_e_./<arquivo>
oi fernando,
--- address@hidden escreveu:
> Gostaria de saber qual diferença existe entre chamar um
> script com "sh" e chamar com "./".
resposta: depende :)
se a primeira linha do script for #!/bin/sh, dá na mesma.
mas ela também pode ser #!/bin/csh ou outra.
ao chamar "sh arquivo", você está chamando explicitamente
o shell "sh" e passando o conteúdo do arquivo para ele
executar. você está _afirmando_ que o conteúdo desse
arquivo é um shell script.
mas ele pode não ser:
$ cat lixo
#!/usr/bin/env python
print "sou python"
$ python lixo
sou python
$ sh lixo
lixo: line 2: print: command not found
o shell tentará executá-lo como se fosse um script sh,
mas não é.
já com o ./arquivo, o shell corrente (que pode não ser o sh)
primeiro vai checar a primeira linha do arquivo, procurando
pela linha mágica
#!/rota/para/programa
para saber *quem* vai executar este arquivo. se ele não achar
a linha, assume que é um shell mesmo e tenta executá-lo.
$ chmod +x lixo
$ ./lixo
sou python
aqui o shell leu a primeira linha, viu que é um script python,
e chamou o interpretador do python para executá-lo.
já, se eu tirar a primeira linha mágica...
$ cat lixo
print "sou python"
$ ./lixo
./lixo: line 1: print: command not found
aà o shell não tem como adivinhar qual o interpretador correto
para este arquivo.
expriquei ou compriquei? :)
=====
--
Aurelio Marinho Jargas, Curitiba, Conectiva
A odisseia verde no FISL http://aurelio.net/curso/fisl
______________________________________________________________________
Participe da pesquisa global sobre o Yahoo! Mail:
http://br.surveys.yahoo.com/global_mail_survey_br
---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
[As partes desta mensagem que não continham texto foram removidas]
- Re: [shell-script] Diferença_entre_sh_<arquivo>_e_./<arquivo>,
fernando . victus <=