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: Julio C. Neves
Subject: Re: [shell-script] Variaveis e Funcoes
Date: Thu, 4 Aug 2011 19:15:06 -0300

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]



reply via email to

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