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

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

Re: [shell-script] Re: Variáveis em caixa alta x caixa baixa (era Qual a


From: Eri Ramos Bastos
Subject: Re: [shell-script] Re: Variáveis em caixa alta x caixa baixa (era Qual a forma mais eficiente para recuperar campos de um arquivo de texto?)
Date: Tue, 4 May 2010 10:46:15 -0300

Dando minha contribuição também:

Precisei dar manutenção em scripts feitos por terceiros recentemente,
pois além de usar a variável $USER dentro do script recebendo um valor
não-default o script tinha um erro que evitava que o valor correto
fosse dado à variável.

Então vez por outra o valor de $USER acabava sendo a variável de
ambiente $USER, causando pequenos desastres cada vez que rodava.

Resolvi isso com um encontrar/substituir $USER por $user e usando "set
-o nounset" para tratar variáveis vazias como erro.

Eu mesmo já usei muita variável em caixa alta, mas felizmente me
livrei desse vício. ;)

[]'s
Eri Ramos Bastos


2010/5/4 Tiago Peczenyj <address@hidden>:
> Apenas para colaborar,
>
> Ate hoje eu vi apenas um caso de variavel de ambiente que foi mal utilizada
> em um script, que foi justamente uma subfunção que sobreescrevia o PATH (era
> uma url que era quebrada em varias partes, DOMAIN, QUERY e... PATH) e logo
> depois tentava executar algum programa (o java, se nao me engano). Mas isto
> atrapalhou o proprio funcionamento do script, manteve o ambiente intacto.
>
> É mais facil executar um rm -rf no diretorio .. e descobrir como é bom ter
> backup
>
> 2010/5/3 MrBiTs <address@hidden>
>
>>
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> > Sobre as variáveis agora eu fiquei na dúvida pois eu sempre as usava em
>> > caixa alta, até que fiz o Curso de Shell com o Júlio e ele indicou que
>> > deveríamos usar capitalizadas pois as variáveis de ambiente são por
>> > default em caixa alta.
>> >
>> > Fiz alguns testes e constatei que não existe perigo de eu alterar uma
>> > variável de ambiente de dentro de um script apenas atribuindo valores a
>> > ela, ela só realmente muda o valor da variável de ambiente se eu usar o
>> > export $VAR, porém se eu tentar ler uma variável que ainda não tenha
>> > algum valor atribuído e que possua o mesmo nome da uma variável de
>> > ambiante, eu receberei o valor dessa variável de ambiente, também,
>> > depois de atribuir um valor a uma variável com o mesmo nome de uma
>> > variável de ambiente eu não posso mais recuperar o valor da variável de
>> > ambiente.
>> > Que confusão...
>> > Bom, concordo 100% que é muito melhor para visualizar no código as
>> > variáveis em caixa alta, então será que uma melhor opção não seria usar
>> > as variáveis em caixa alta mas com um _ no início? tipo $_USER $_NAME
>> > $_STATUS ?
>>
>> Deixa eu me meter. As razões do Júlio são ótimas, concordo com todas elas,
>> e tenho certeza que várias pessoas passam por esse
>> problema, de acessar uma variável de sistema e zonear o resultado do
>> programa. O primeiro cuidado aqui seria conhecer quais são as
>> variáveis de sistema, mas algumas vezes acho que pedir para as pessoas
>> conhecerem o ambiente em que vão trabalhar é pedir demais,
>> nos dias conturbados onde velocidade é o que interessa, qualidade não tem
>> pressa, que vivemos. Eu posso te dizer que nesses 24 anos
>> de Unix eu NUNCA acessei indevidamente uma variável de sistema. Todas as
>> minhas variáveis são inicializadas, mesmo que a linguagem
>> seja de tipagem fraca. Então, ao invés de usar essa coisa feia o _ na
>> frente das variáveis, conheça as do seu SO e inicialize-as
>> todas nos seus programas.
>> Quanto a definir uma variável com o mesmo nome de uma variável de sistema
>> que depois necessitará ser acessada no programa, isso é
>> falha de projeto, coisa de quem não sabe programar. Se você é daqueles que
>> sai rabiscando código ao invés de PENSAR seu programa e
>> prever tudo o que será utilizado nele, pode ter esses problemas. Se você é
>> um programador sério, isso não vai te acontecer.
>>
>> - --
>>
>> Um abraço
>>
>> .0. MrBiTs - address@hidden <mrbits.dcf%40gmail.com>
>> ..0 GnuPG -
>> http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
>> 000 http://www.mrbits.com.br
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.9 (GNU/Linux)
>>
>> iQEcBAEBCAAGBQJL32qmAAoJEG7IGPwrPKWrbMsIAKTmNSjJ6XtCktdF9Tz/aPDR
>> f2coI0qMJjVpu+5VBPV4SxLSGmY7MqyvGkosIEZf8dn+ihu1/LRc8rcIxZ6/kXeC
>> hgbtBH/KnPBU4X0zBXZoIifH07a7ezOlRQn4HXHN12vCSwx/oDda2rAPWTWdT9ok
>> E3Y3440cwVqhnOgFTN04sVkO+uhJimX8T5IaW8pwHdwWzb0jL052E8MWrJirrBmT
>> 5S3CwxCpeSKI+QWWgMdwQNkKrrmqw5vNzWftTLHGYfl7PDsHDGl6oFfuaP6ecNe8
>> v9GbRcA6x65OF2MnNA6QDzD7q6ehG/5s1dfSurLPWoC8RZRWu2sELPI2conOe9w=
>> =+L2G
>> -----END PGP SIGNATURE-----
>>
>>
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


reply via email to

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