Boa Noite , eu fiz os testes que o @listeiro propôs e realmente ficou bem esclarecido , essa questão das Shells
Obrigado a todos ! Em 23 de maio de 2015 03:20, Listeiro 037 <listeiro_...@yahoo.com.br> escreveu: > > Tenho a proposta de um exercício se você topar e tiver um > tempo. Experimenta apagar a primeira linha com she-bang do script > (deixar a linha em branco) e põe ele prá rodar: > > 1) com ./script > 1) com sh script > 2) com sh ./script > 3) com bash script > 4) com bash ./script > > Depois você elimina a permissão de escrita com um chmod -x script e > refazestes testes, executando. Depois você digita sh no prompt e aperta > enter prá entrar no dash e refaz os testes. > > A variável $PATH de seu ambiente terminal possui vários diretórios de > arquivos binários para a execução. Diretórios como /bin /usr/bin e se > você for root também terá /sbin e /usr/sbin e outros > como /usr/local/bin podem entrar nessa lista. > > Para confirmar basta você executar um echo $PATH e irá ver como está > sua variável PATH de busca de caminhos de execução. > > Agora se você adicionar no seu $PATH um caminho para seu > diretório /home/usuario (supondo seu usuário ter o nome de usuario), > então o script rodará sem o ./ para você. Ele rodará que nem um ls, que > não precisa de um /bin/ls prá rodar como o script precisa de > um ./script para rodar. > > Não é recomendado colocar na variável PATH o diretório home por > questões de segurança (até onde sei, pelo que aprendi). Continue > executando comandos dentro de home com ./ > > > > Em Sat, 23 May 2015 00:04:40 -0300 > Tiago Pigazao <piga...@gmail.com> escreveu: > > > então independente do que for usado na execução sh ou ./ ele de certa > > forma não vai considerar aquele sha-bang do inicio #!bin/bash ? > > > > Em 22 de maio de 2015 23:34, Listeiro 037 <listeiro_...@yahoo.com.br> > > escreveu: > > > > > > > > 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 <piga...@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 > > > > > > > > > -- > > > To UNSUBSCRIBE, email to > > > debian-user-portuguese-requ...@lists.debian.org with a subject of > > > "unsubscribe". Trouble? Contact listmas...@lists.debian.org > > > Archive: > > > https://lists.debian.org/887903.3626...@smtp234.mail.gq1.yahoo.com > > > > > > > > > -- > To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact > listmas...@lists.debian.org > Archive: > https://lists.debian.org/983881.16648...@smtp233.mail.gq1.yahoo.com > >