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

Responder a