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

Re: diferença entre sh e ./



Olá.

sh é um link em /bin/sh. No Debiian aponta para /bin/dash.
Dash é uma implementação do Almqvist Shell (ash) para o Debian. É
shell diferente do Bash.

./ executa o script com shell do ambiente

Dash entende as coisas diferentes do que Bash entende. São como que
linguagens de scripts diferentes. 

Por isso é que há uma orientação prá se escrever scripts que funcionem
não apenas com bash ou zsh, mas com csh, ksh, dash e muitos outros. No
caso do if há dois comandos prá serem usados junto com ele chamado
expr e test.

Uma versão do seu script para Dash seria:

#!/bin/sh
for var in $(seq 100) ; do
	if test $(expr $var % 2) -eq 0
	then 
		echo $var
	fi ; 
done


Em Fri, 22 May 2015 23:04:25 -0300
Tiago Pigazao <pigazao@gmail.com> escreveu:

> 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


Reply to: