shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]