[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: diferença entre sh e ./



Boa noite,

Não estou totalmente certo, talvez alguém com mais conhecimento possa me corrigir, mas minha interpretação é a seguinte:

Quando você executa com sh, na verdade você está executando o sh e passando o seu script como parâmetro, neste caso o sh vai ser o interpretador, e no caso do Debian, o sh é na verdade o dash.

Quando você executa com ./ você está executando diretamente o script, e o interpretador é chamado na primeira linha do script, nesse caso o bash.

Então no primeiro caso quem está interpretando o seu script é o dash e no segundo é o bash, são duas shells diferentes e o que funciona em uma pode não funcionar, necessariamente, na outra.

Se, em vez de usar sh para executar seu script, você usar bash, ele vai funcionar. Assim como se você alterar a primeira linha do seu script para: #!/bin/dash ou #!/bin/sh e executar ele com ./ você vai obter o mesmo erro que está obtendo agora executando com sh.

On Fri, May 22, 2015 at 11:04:25PM, Tiago Pigazao wrote:

> Boa noite
> 
> Pessoal alguem sabe, qual é a diferença de se executar um shell script com
> "sh" ou com "./" ?
> 
> estou com o seguinte cenário..
> 
> tenho um script com permissão de execução ok , ao executar com "sh" ele não
> funciona (da problema na linha do if), agora se executar com "./"  funciona
> ok... segue script abaixo :
> 
> #!/bin/bash
> for var in $(seq 100) ; do
> if (( $var % 2 == 0 ))
> then
> echo $var
> fi ; done

-- 
Fabio A. De Muzio Tobich


Reply to: