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 <[email protected]>: > 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 <[email protected]> > >> >> >> -----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 - [email protected] <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: [email protected] > --------------------------------------------------------------------- > 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 > > >
