shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] O que é o ! ???


From: Julio C. Neves
Subject: Re: [shell-script] O que é o ! ???
Date: Tue, 29 Jul 2014 21:48:32 -0300

Fala Fernandão,
ele executará o pwd se vc trocar o echo por eval.
$ eval ${!a}

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 11 a 15/08
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 29 de julho de 2014 18:19, Fernando Mercês address@hidden [shell-script] <address@hidden> escreveu:
 

Não consegui reproduzir a execução no bash:

$ cmd=pwd
$ a=cmd
$ echo ${!a}
pwd

Não deveria executar o pwd então?

Abraços.



Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é preciso mudar". (Elliot Gould)


2014-07-29 17:57 GMT-03:00 Alfredo Casanova address@hidden [shell-script] <address@hidden>:
 

Nesse caso não, Osvaldo. Dentro do ${ } ele tem função diferente:
Dê uma olhada:

$ var=variavel
$ variavel=ola
$ echo ${!var}
ola

ele substitui o !var pelo conteúdo da variável $var, e executa depois, mostrando o conteúdo da variável ${variavel}

(escolhi mal o nome das variaveis para o exemplo, aparentemente ahhaha)





2014-07-29 17:52 GMT-03:00 Osvaldo Filho address@hidden [shell-script] <address@hidden>:

 

A função do ! é negar. Ou seja, $(!i) significa se o parâmetro $i não existir ele imprime que o parâmetro não existe.


2014-07-29 17:16 GMT-03:00 Alfredo Casanova address@hidden [shell-script] <address@hidden>:

 

e eu aqui me perdendo em dezenas de contrabarras hahahaha
valeu!


2014-07-29 17:11 GMT-03:00 Flavio Steimacher address@hidden [shell-script] <address@hidden>:

 

Executa o conteúdo de $var (igual 'eval \$$var')



Em 29 de julho de 2014 17:07, Alfredo Casanova address@hidden [shell-script] <address@hidden> escreveu:

 

Estou fazendo uns scripts pra usar como CGI, e estava tendo um problema pra usar o eval pra navegar entre os argumentos e checar se estavam completos (queria algo melhor que simplesmente checar o $# e falar que estavam faltando argumentos).

então procurando na internet achei o seguinte exemplo

for (( i=1; i<5; i++ ));
do
        [ -z "${!i}" ] && { echo "argumento $i faltando"; exit 4; }
done;

qual a função desse ponto de exclamação?


--
[]'s
Alfredo Casanova
Linux User #228230
msn: address@hidden
tel: +55 61 9655 9619




--
Atenciosamente,

Flavio Steimacher
DBA Oracle
LPIC1 - Linux Professional Institute Certified
CLA - Novell Certified Linux Administrator
DCTS - Novell Data Center Technical Specialist




--
[]'s
Alfredo Casanova
Linux User #228230
msn: address@hidden
tel: +55 61 9655 9619




--
Att,

Osvaldo Filho.

Analista de Suporte (Operações de Datacenter) - Synapsis Brasil. 
Sócio-fundador do i-TIC Digital Livre - Informação Livre para todos! 
Twitter i-TIC Digital Livre: @iticdigital
TUX-CE Member.
Graduado em Redes de Computadores - Centro Universitário Estácio do Ceará.
Técnico em Conectividade com Extensão em Desenvolvimento de Software - IFCE (Cefet).
Graduando em Telemática - IFCE (Cefet).
Novell Datacenter Technical Specialist.
Linux Professional Institute Certified Level 1.
Novell Certified Linux Administrator (CLA).

Facebook: Osvaldo Filho
Twitter: @osvaldofilho




--
[]'s
Alfredo Casanova
Linux User #228230
msn: address@hidden
tel: +55 61 9655 9619




reply via email to

[Prev in Thread] Current Thread [Next in Thread]