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

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

Re: [shell-script] Variaveis e Funcoes


From: Rodrigo R. Martins
Subject: Re: [shell-script] Variaveis e Funcoes
Date: Fri, 5 Aug 2011 10:04:51 -0300

Valeu, Julio...

Esclareceu bastante, inclusive achei bacana a opção de alterar variáveis
apenas no contexto do comando da vez.

Eu até havia achado em algumas literaturas alguns exemplos, inclusive
dizendo que após executar uma função todas as variáveis utilizadas nela
seriam válidas para o restante do script após invocada...

Confesso que isso me preocupou, principalmente nos casos de IFS, que pode
alterar completamente o bom andamento de um código.

Enfim, mais uma vez... Obrigado.

Abraços,

Em 4 de agosto de 2011 19:15, Julio C. Neves <address@hidden>escreveu:

> **
>
>
> Fala Rodrigo,
> só para não te deixar sem resposta.
> A resposta à sua pergunta é sim. Dentro de uma função (e somente nesse
> ambiente), vc pode declarar variáveis locais. Assim, se vc se vc alterar o
> IFS, ele estará alterado somente dentro daquela função.
>
> Existe porém um outro recurso que talvez te seja útil. Vc pode alterar o
> valor de uma variável do sistema somente durante a execução de um cmd.
> Veja:
>
> $ date
> Qui Ago 4 19:01:34 BRT 2011
>
> Como vc pode ver, a data está em português, agora vou alterar a variável
> LANG passando-a para inglês (En) e executando o date simultaneamente:
>
> $ LANG=En date
> Thu Aug 4 19:01:50 BRT 2011
> $ echo $LANG
> pt_BR.utf8
>
> Como vc viu, a saída da instrução foi em inglês mas o LANG original não se
> alterou.
>
> Agora veja um exemplo com o IFS:
>
> $ x=1:2:3:4
> $ IFS=: read a b c d <<< "$x"
> $ echo $a
> 1
> $ echo $b
> 2
> $ echo $c
> 3
> $ echo $d
> 4
>
> Cordialmente,
>
> Julio Neves
> *Quer programar bem em Shell?
> *
>
> *Use este endereço de e-mail, o Skype ou ☎ (21)8112-9988 ☎*
>
> *
> *
>
> **
>
> *
> *
> My profiles: [image: Twitter] <http://twitter.com/juliobash>
> Contact me: [image: Skype] julioneves1
> Em 4 de agosto de 2011 15:06, Rodrigo R. Martins
> <address@hidden>escreveu:
>
> > **
>
> >
> >
> > Pessoal,
> >
> > Tenho algumas dúvidas que quem sabe seja bem simples pra maioria.
> >
> > Frequentemente preciso desenvolver alguns scripts, mas alguns deles são
> de
> > missão crítica, ou seja, erros são quase intoleráveis.
> >
> > Minha preocupação é em relação a variáveis (locais e globais), de modo
> que
> > eu consiga enjaular apenas dentro das respectivas funções.
> >
> > Exemplo:
> >
> > #!/bin/sh
> > [...]
> > IFS="
> > "
> >
> > function_blablabla() {
> > local IFS=";"
> >
> > [...]
> > for users in ${USERS}; do
> >
> > [...]
> >
> > done
> > [...]
> > }
> >
> > Pergunto:
> >
> > É válido dizer que o IFS global será preservado e que a função usará o
> IFS
> > local, mesmo após invocá-la?
> >
> > Desde já agradeço.
> >
> > Abraços,
> >
> > Rodrigo
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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