#!/bin/bash ou #!/bin/sh ?

1. #!/bin/bash ou #!/bin/sh ?

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/03/2008 - 10:15h

Olá pessoal!

Minha pergunta é light queria saber se para pessoas que só usam o linux em casa (como eu é claro) não fazem nada de muito sofistcado faz difença usar #!/bin/bash ou #!/bin/sh para fazer um aquivo de configuração um funciona melhor que o outro ou não faz diferença?

Obrigado a todos.
sniper!


  


2. Re: #!/bin/bash ou #!/bin/sh ?

Vanderson Gonçalves
vnderson

(usa Fedora)

Enviado em 17/03/2008 - 10:46h

sempre uso #!/bin/bash... acredito que atenderá suas necessidades, esta linha determina qual shell você usará no script, então teria que dar uma olhada nas especificações do sh e do bash pra descobrir as diferenças.


3. Re: #!/bin/bash ou #!/bin/sh ?

Anderson de Sousa Pereira
Pianista

(usa Debian)

Enviado em 17/03/2008 - 10:56h

cara eu acredito que vá depender da sua distribuião pois sh se refere a shell e bash é um tipo de shell.. eu uso debian e prefiro usar o #!/bin/sh


4. Re: #!/bin/bash ou #!/bin/sh ?

Leandro Santiago
tenchi

(usa Slackware)

Enviado em 17/03/2008 - 10:57h

Na maioria das distros o /bin/sh é somente um link para /bin/bash, por isso não vai fazer muita diferença não. Isto existe só por uma questão de compatibilidade com scripts antigos e pessoas que gostam de colocar #!/bin/sh mesmo ;-)

O bash é baseado no sh (shell padrão no Unix), por isso faz tudo que este faz, e muito mais.

Acredito que o sh nem seja mais desenvolvido hoje em dia, sendo substituído por completo pelo bash ou zsh.



5. Re: #!/bin/bash ou #!/bin/sh ?

Takahashi
signout

(usa Slackware)

Enviado em 17/03/2008 - 11:05h

Sniper,

Não faz diferença, uma vez que o /bin/sh é um link simbolico para o /bin/bash.

Espero que ajude
[]s


6. Re: #!/bin/bash ou #!/bin/sh ?

Anderson de Sousa Pereira
Pianista

(usa Debian)

Enviado em 17/03/2008 - 11:06h

Digite

#echo $SHELL

e descubra...

xD

Abraço!


7. Re: #!/bin/bash ou #!/bin/sh ?

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 17/03/2008 - 11:37h

Como o sh é um link simbólico para o bash, ao utilizar /bin/sh o seu arquivo pessoal de configuração do bash (o ~/.bashrc) não sera lido, tornando o lançamento dos scripts mais rápido.

P.S.: Apesar do bash ser o shell padrão em quase todas as distros, eu prefiro o zsh (fantástico!), já que ele incorpora as características do sh, [t]csh, ksh, bash, além de uma centena de outras próprias.


8. sh DIFERENTE de bash!!

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 17/03/2008 - 12:28h

Sim, hoje tudo aponta para bash.
Mas se tu chama o bash por sh ele EMULA o antigo sh (com suas funcionalidades ou, PIOR, a falta delas) e definitivamente NÃO SÃO O MESMO!!

Veja este pequeno código. Dá ERRO DE SINTAXE se tu colocar /bin/sh pois o sh não aceita as operações na sintaxe C (o (( a--)):

#!/bin/bash

a=4
while (( a-- ))
do
echo $a;
done

Executando:
$ ./lixo.sh
3
2
1
0


PERFEITO!
Agora trocando o /bin/bash por /bin/sh:

#!/bin/sh

a=4
while (( a-- ))
do
echo $a;
done

$ ./lixo.sh
./lixo.sh: 7: a--: not found
elgio@mate:~$



9. Re: #!/bin/bash ou #!/bin/sh ?

César...
cesar

(usa CentOS)

Enviado em 17/03/2008 - 13:11h

Eu sempre usei o #!/bin/bash

;D


10. Complementando...

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 17/03/2008 - 13:49h

Complementando o que eu disse, em contrário o que outros disseram (como o signout), FAZ SIM toda a diferença se tu chamar /bin/sh ou /bin/bash

Mesmo que TUDO não passe de bash em distros Linux modernas, quando tu chama /bin/sh TU ESTÁ EXECUTANDO o bash, mas ele se comportará como sh, com suas inúmeras limitações.

Tudo que funciona em sh funciona no bash.
Mas nem tudo que funciona em bash é aceito no sh.

Por isto usar SEMPRE /bin/bash é uma boa medida.

Ou o zsh como sugeriram antes, que, pelo que entendi, é MELHOR que o bash e, portanto, seria capaz de emular ele (não conheço o zshell. Estou confiando no comentário do nosso amigo SMarcell)


11. Re: #!/bin/bash ou #!/bin/sh ?

Leandro Santiago
tenchi

(usa Slackware)

Enviado em 17/03/2008 - 13:59h

É Elgio. Dessa eu não sabia ;-)
É que eu não quis generalizar dizendo que em todos os casos o /bin/sh aponta par ao /bin/bash, simplesmente por eu não ter utilizado TODAS as distros que existem. Vai ver um cara por aí criou o Jurassic-Linux com kernel 0.1, gcc-0.0.1 e o próprio bourne shell (retirado de algum servidor ftp de 1978!). Nunca se sabe, né? hauahuahau

Mas muito interessante esta questão da compatibilidade (para mais ou para menos). Até cinco minutos atrás eu não sabia desta! ;-)


12. Re: #!/bin/bash ou #!/bin/sh ?

Jefferson Diego
Diede

(usa Debian)

Enviado em 17/03/2008 - 14:12h

Até agora, fazendo uns scripts básicos em shell, a única diferença que vejo (até agora) é que o /bin/sh não dá saída colorida do echo. (é algo como echo -e "{TTEXTO}33[Estilo;'cor'), enquanto que o /bin/bash o faz.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts